小编ces*_*sar的帖子

返回ImmutableMap <文件,文件>

我有一个返回Map的方法.我最初会返回该方法生成的HashMap,但认为返回一个ImmutableMap会更好.不幸的是,以下语句拒绝在eclipse中工作:

HashMap<File, File> map = new HashMap<File, File>();
map.put(...);
.
.
.
return ImmutableMap.builder ().putAll (map).build ();
Run Code Online (Sandbox Code Playgroud)

它一直在说我正在回复一个不相容的陈述,a Map<Object, Object>.

我最初尝试使用:

return ImmutableMap<File, File>.builder ().putAll (map).build ();
Run Code Online (Sandbox Code Playgroud)

但这显然不起作用.我最好如何解决这个问题?我应该先将它存储在类似的东西中

ImmutableMap<File, File> m = ImmutableMap.builder ().putAll (map).build ();
Run Code Online (Sandbox Code Playgroud)

还是有更优雅的解决方案?

java collections immutability guava

16
推荐指数
2
解决办法
5968
查看次数

什么是词汇错误的例子,语言是否可能没有词汇错误?

对于我们的编译器理论类,我们的任务是为我们自己设计的编程语言创建一个简单的解释器.我使用jflex和杯子作为我的发生器,但我有点卡在一个词法错误.另外,我建议使用jflex的状态功能吗?它感觉不对,因为看起来解析器更适合处理这个方面.你推荐使用其他工具来创建语言吗?我很抱歉,如果我不耐烦,但它应该在周二到期.

compiler-theory jflex

9
推荐指数
2
解决办法
7万
查看次数

如何将Java的主要功能融入您的设计中?

你实际上可以跳过这第一部分,因为它会让人感到困惑,但我会把它放在这里,因为我想知道是否有其他人有同感.我是CS本科生,已经使用Java 3年了,我仍然觉得很难理解如何将Main功能包含在我的设计中.将它自己放在一个类中是错误的,但将它插入另一个类文件也感觉不对.我认为后者是这样的,因为它不适合同类的其他人使它不相干.例如,我不能只在我的DocumentReader对象上粘贴一个main函数.它与对象无关.另一方面,我不能只创建一个只有一个main函数的Main类,因为在面向对象的编程中,你' 应该从物体角度思考,有效地创造一个微型世界.对于那个围绕单个物体的微型世界来说,它只是存在而只是存在.它不是故事中的叙述者和角色,因为它同时没有任何作用.我更喜欢C的主要功能,它与所有东西分开.它使故事的叙述与彼此相互作用的人物分开.

我想知道专业人员如何将main方法与其余代码混合使用.如何使其与其他设计相适应.而且,它们通常是长还是短?

java oop

9
推荐指数
1
解决办法
440
查看次数

无法在Android中创建外部文件目录.WRITE_EXTERNAL_STORAGE存在

我试图用我的两个ApplicationContext和我通话ServiceContext访问外部目录.不幸的是,它一直在返回null,LogCat报告它无法创建外部目录.我确信我有WRITE_STORAGE_PERMISSION现在,但它仍然无效.我的设备正在运行API 10(2.3.3)vanilla android.有任何想法吗?

这是我的清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="droid.signboard" android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="10" />


<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />



<application android:icon="@drawable/icon" android:label="@string/app_name"
    android:name="SignboardApp">
    <receiver android:name=".ApplicationStarter">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED"></action>
            <action android:name="droid.signboard.LAUNCHER_START"></action>
        </intent-filter>
    </receiver>
    <activity android:label="@string/app_name"
        android:screenOrientation="landscape" android:launchMode="singleTop"
        android:name=".view.Signboard">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"></action>
            <category android:name="android.intent.category.LAUNCHER"></category>
        </intent-filter>
    </activity>
    <service android:name=".controller.MasterControllerService">
        <intent-filter>
            <action
                android:name="droid.signboard.LAUNCH_SERVICE_FROM_ACTIVITY"></action>
        </intent-filter>
    </service>


</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)

这里是代码搞砸的地方:

private boolean canWriteEx () …
Run Code Online (Sandbox Code Playgroud)

android android-sdcard

8
推荐指数
2
解决办法
1万
查看次数

java.net.ServerSocket.accept()在Android上不返回

我想尝试telnet到一个无根的Droid.我已经INTERNET启用了权限,我Mac OS X通过WiFi 将设备连接到与我的盒子相同的网络上,并且我可以ping我打开的端口.

在最初的实验中,我让它在一个有根的测试设备上工作,但我让套接字处理程序运行在UI Thread而不是一个单独的线程上.既然我在一个单独的线程上有网络模块,我就无法ServerSocket.accept ()返回.它适用于谷歌版本的android(vanilla),但不适用于三星或索尼爱立信.

当我telnet到它时,我的尝试会超时,并且logcat不会打印出任何异常或错误.

以下是我的代码的Google代码回购链接:Google代码存储库

ServerScoket.accept ()在一个单独的线程上运行,并在另一个线程上运行流处理器.我的设计评论(即我应该使用Handlers或AsyncTasks)非常受欢迎.现在,为了Toast通过telnet接收的消息,我使用Handler,通过a获取looper Context.

以下是我netstat -n在非工作设备上运行adb shell时得到的结果:

~$ adb shell netstat -n
Proto Recv-Q Send-Q Local Address          Foreign Address        State
tcp        0      0 127.0.0.1:7777         0.0.0.0:*              LISTEN
tcp        0      0 127.0.0.1:7203         0.0.0.0:*              LISTEN
tcp        0      0 127.0.0.1:47609        127.0.0.1:7777         ESTABLISHED
tcp        0      0 127.0.0.1:7777         127.0.0.1:47609        ESTABLISHED
tcp        0      0 127.0.0.1:47610        127.0.0.1:7777         ESTABLISHED …
Run Code Online (Sandbox Code Playgroud)

sockets android telnet

7
推荐指数
1
解决办法
2681
查看次数

是否存在与XML类似的其他语言?

我问这个是因为我发现XML在视觉上没有吸引力.我理解XML非常有名,非常有用,并且大多数(如果不是全部)程序员都接受它作为定义和构造数据的非常有用的语言; 然而,我真的没有发现盯着它,看着它,或者读它非常有吸引力.我只是一名学生,我很确定我迟早要处理它,但我只是想知道是否有替代XML.

xml

5
推荐指数
1
解决办法
1546
查看次数

无需用户交互即可自动更新 Android 应用

据我所知,Android 应用程序是通过从 android 市场下载 apk 并让用户确认更新来更新的。我还认为,如果机器人没有扎根,应用程序需要用户确认才能推送更新。我想知道是否可以远程更新无根手机中的应用程序,而无需任何用户交互,该应用程序位于非市场服务器上。

现在,我只知道通过市场和 adb 安装应用程序。也许还有其他方法?

android

4
推荐指数
1
解决办法
6368
查看次数

在Java中使用`this`是不好的做法吗?

我只是好奇使用this,因为Android的示例代码和文档没有使用this关键字(我喜欢相信android工程师一般都很聪明,因此我用它们作为基础).我只是对Android工程师没有this太多使用的根本原因感到好奇.

java this

4
推荐指数
1
解决办法
1767
查看次数

自hg书写完以来,"hg backout"的行为是否发生了变化?

我创建了一个新的存储库,test-backout并在其中添加了一个新文件file.然后我每次做4次提交,附加file使用的提交次数

echo [manually entered number] >> file
hg commit -m '[manually entered number]'
Run Code Online (Sandbox Code Playgroud)

实际上,文件有:

init
1
2
3
Run Code Online (Sandbox Code Playgroud)

根据hg书,如果我跑hg backout --merge 2,我应该:

init
1
3
Run Code Online (Sandbox Code Playgroud)

但相反,它无法合并并打开我的difftool(vimdiff),我得到3个选项:

init          | init          | init
1             | 1             |
2             |               |
3             |               |
Run Code Online (Sandbox Code Playgroud)

我最初尝试使用该--merge选项,然后再没有它.我现在的问题是,还有办法让我得到:

init
1
3
Run Code Online (Sandbox Code Playgroud)

我只是犯了错误或错过了什么,还是我坚持这些选择?

mercurial vimdiff

3
推荐指数
1
解决办法
221
查看次数

Android的FragmentTransaction.commit()方法线程安全吗?

我只是好奇我是否必须在UI-Thread上调用它.根据文档,commit当有时间时,将在未来的UI线程上运行.如果是这种情况,我可以FragmentTransaction.commit()在另一个线程上运行吗?

android android-fragments

2
推荐指数
1
解决办法
2939
查看次数

我在哪里实现Swing程序中的main()函数?

我很好奇我应该将主函数放在Java Swing程序中.似乎如果它太短暂也创造了一个全新的类.

java swing

1
推荐指数
1
解决办法
522
查看次数

Android:无法在Google Guava的ImmutableSortedSet中调用SortedSet方法

Android的编译器抱怨,谷歌番石榴V12的ImmutableSortedSet没有方法first(),last()等等,而ImmutableSortedSet没有实现SortedSet.我目前正在使用Android API 8.以下是一些示例代码:

/* 
 * I only have one set, 'mSet', but for the sake of this example
 * I added an ImmutableSortedSet instance.
 */
private final SortedSet<Item> mSet;
private final ImmutableSortedSet<Item> mImmutableSet;

private MyObject(Collection <? extends Item> items) {
  // Fails -- cannot convert from ImmutableSortedSet<Item> to SortedSet<Item>
  mSet = ImmutableSortedSet.copyOf(items);
  mImmutableSet = ImmutableSortedSet.copyOf(items);
}

private Item getFirstItem() {
  // Fails -- no such method 'first()' in ImmutableSortedSet
  return …
Run Code Online (Sandbox Code Playgroud)

android guava

1
推荐指数
1
解决办法
206
查看次数

为什么我的类在Java HashSet中无法正常工作?

我正在研究一个涉及我使用HashSet我制作的课程的项目,我将其命名Test.我这样定义了HashSet如下:

HashSet<Test> t = new HashSet<Test>();
t.add(new Test("asdf", 1));
t.add(new Test("hello", 2));
t.add(new Test("hello", 3));
Run Code Online (Sandbox Code Playgroud)

我试过用

t.contains(new Test("asdf", 1));
Run Code Online (Sandbox Code Playgroud)

但它回来了false.但是,当我使用HashSet<Character>它似乎工作正常.我试图重写先前的equals声明,但它没有奏效.我试着equals独自离开,但我还是得到了false.我需要知道我做错了什么?

另外,我没有编辑哈希函数,我只更改了Test.equals(Object o).这是一个简单的项目,因为java文档声明它使用o.equals(this),我想我不会这样做.

java collections hashset

0
推荐指数
1
解决办法
948
查看次数