小编Fra*_*fka的帖子

如何在包上使用NonNullByDefault

我的编译器警告我A default nullness annotation has not been specified for the package.我正在使用Juno和Java 7.

您应该@NonNullByDefault作为包选项添加的文档统计信息,但我不知道这意味着什么.

我可以以某种方式设置NonNullByDefault整个包吗?在Eclipse中,我无法右键单击包并说出add option类似的内容.

或者我只是添加@NonNullByDefault到包中的任何类,然后它对该包中的所有bean有效?或者我是否必须在pakage中创建一些元信息文件以添加包选项?我必须是盲人,因为我在网上找不到任何帮助....

一个小例子会很棒.

java eclipse compiler-warnings

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

有没有简单的方法来预处理和重定向GET请求?

我正在寻找最佳实践答案.我想为GET请求做一些预处理.因此,例如,如果不允许用户查看该页面,则将其重定向到另一页面.但我不想使用普通的servlet过滤器,因为我想表达这种行为faces-config.xml.这是可能的,如何调用,怎么做?

我可以定义一些Filter bean,它还返回一个String,告诉faces-config.xml下一步该去哪里?

我用Google搜索,但只打了正常的过滤器.如果我使用的过滤器,可以一个@WebFilter@ManagedBean在同一时间?还是那种糟糕的风格?

authentication jsf jsf-2 servlet-filters

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

AV Foundation相机预览图层会放大,如何缩小?

我目前使用的应用程序具有使用Zxing库(http://code.google.com/p/zxing/)连续扫描QR /条形码的主要功能.对于连续帧捕获,我曾经初步化AVCaptureSession和AVCaptureVideoOutput,AVCaptureVideoPreviewLayer在苹果问答http://developer.apple.com/iphone/library/qa/qa2010/qa1702.html中描述.

我的问题是,当我以前运行相机预览时,我可以通过视频设备看到的图像比我们通过iPhone的静态相机看到的图像大得多(1.5倍).我们的客户需要在扫描时将iPhone与条形码保持5厘米左右的距离,但如果您将iPhone保持在该参数下,则整个QR码将不可见并且解码失败.为什么iPhone 4中的摄像机放大图像(通过AVCaptureVideoPreviewLayer查看)?

avfoundation ios

10
推荐指数
3
解决办法
9236
查看次数

Java的同步会更新完整的缓存,还是只更新我同步的对象?

如果我访问同步方法或同步块内的对象,那个被访问元素中的所有对象是否也同步?

想象一下,有一个对象Queue具有同步add()take()方法,接受并分发复杂对象Thing.Thing有很多列表与其他不同的对象.

现在,图像线程Before创建Thing并放入一些现有对象Thing,修改其中一些对象,依此类推.该Before线增加ThingQueue.稍后一点线程After从中Thing获取Queue.

问题:Will Thing及其所有子/子对象是否处于Before离开它们的状态?即使线程After可能稍早在这些子元素中的一个上工作?因为我映像处理器的线程After可能仍然有一些关于该子元素的缓存信息(该子对象的地址仍然相同).只有通过Thing同步方式访问父对象,所有这些缓存的东西才会失效?

请不要给出使用并发库等的答案.我想了解发生了什么.

java parallel-processing concurrency synchronization monitor

10
推荐指数
2
解决办法
1757
查看次数

java Callable FutureTask Excecuter:如何监听已完成的任务

我对执行者服务很陌生.喜欢自己做所有事情,但我认为是时候相信这些服务了.

我想交Executer一个Runnable.执行者FutureTask把它包裹起来并交给我.现在我调用poll done()方法.但是我希望在done()方法返回true 时得到通知.

有一种get()方法可以阻塞直到Runnable完成,但是我需要为每个作业添加一个额外的线程,只是为了看它何时完成.

我可以给我的执行者一些额外的工作,Callable以获得有关完成任务的通知吗?

怎么去这里?我可以在run方法的末尾添加一些代码,但后来done()可能仍然是假的...

java multithreading callable futuretask threadpool

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

用于切换Java的McCabe Cyclomatic Complexity

我使用的是带有13种情况的switch语句,每种情况只有一行返回值.

McCabe用红色描绘了它.有没有更简单的方法来编写一个大的switch语句?它看起来并不复杂,但我不喜欢默认设置变为红色.如果其他人在我的代码上使用相同的工具并看到红色的东西他们可能会认为我是愚蠢的:-)

编辑:我将不同的SQL类型映射到我自己的更抽象类型,因此减少了类型的总量.

case Types.TIME:
    return AbstractDataType.TIME;
case Types.TIMESTAMP:
    return AbstractDataType.TIME;
case Types.DATE:
    return AbstractDataType.TIME;
case Types.BIGINT:
    return AbstractDataType.NUMERIC;
case Types.DECIMAL:
    return AbstractDataType.NUMERIC;
Run Code Online (Sandbox Code Playgroud)

等等...

java complexity-theory metrics coding-style switch-statement

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

可以多次通知唤醒同一个线程吗?

想象一下,你有一个典型的Java生产者 - 消费者模式.要想要使用更高效,notify()而不是notifyAll()在将新元素添加到队列时.如果两个生产者线程调用notify,是否可以保证唤醒两个不同的等待消费者线程?或者可能是两个notify()在彼此之后不久被解雇导致同一个comsumer线程排队等待两次唤醒?我找不到该部分是描述这是如何工作的API.java是否有一些原子内部操作来唤醒线程一次?

如果只有一个消费者在等待,那么第二个通知将会丢失,这没有问题.

java multithreading synchronization notify

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

如何让Hadoop客户端在安全(Kerberos)集群中使用正确的凭据

我有一个Hadoop(CDH412)群集设置已启用,可以使用Kerberos进行身份验证和授权.我把一切都搞好了(Hdfs,mapred,zookeeper,hbase,hive等).但是,我在从Java应用程序中访问hdfs数据时遇到问题.

我的Java应用程序是在后台运行的服务.因此,无法输入密码,我必须使用密钥表文件.应该不是问题.如果我先做一个'kinit',它会正常工作,ala ...

kinit -kt /home/fred/kerberostest/krb5.keytab myprinc/myserver.com@MY.REALM
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试在java代码中执行此操作(我已经读过LoginContext.logon将执行与kinit相同的操作),则会失败.

为了尝试测试这个,我编写了以下代码片段....

System.setProperty("java.security.krb5.realm", "MY.REALM");
System.setProperty("java.security.kdc", "kdc.server.com");
System.setProperty("javax.security.auth.useSubjectCredsOnly", "false");
System.setProperty("java.security.auth.login.config", "/home/fred/kerberostest/jaas.conf");

LoginContext context = new LoginContext("Client");
context.login();

Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(conf);

InputStream in = fs.open(new Path("/mytestfile"));
int b = in.read();
in.close();
Run Code Online (Sandbox Code Playgroud)

我的jaas.conf文件看起来像这样......

Client {
   com.sun.security.auth.module.Krb5LoginModule required
   debug=true
   useKeyTab=true
   keyTab="/home/fred/kerberostest/krb5.keytab"
   principal="myprinc/myserver.com@MY.REALM"
   useTicketCache=false;
}
Run Code Online (Sandbox Code Playgroud)

当我运行上面的java代码时,LoginContext.login似乎正常工作....我得到一个调试声明

Login successful for user myprinc/myserver.com@MY.REALM using keytab file /home/fred/kerberostest/krb5.keytab
Run Code Online (Sandbox Code Playgroud)

但是,当代码尝试打开HDFS文件(fs.open)时,应用程序失败并显示PriviledgedActionException,并声明:

ERROR security.UserGroupInformation: PriviledgedActionException as :fred (auth:KERBEROS) cause:javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials …
Run Code Online (Sandbox Code Playgroud)

java hadoop kerberos active-directory

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

Maven m2e强制执行自己的编译器设置 - 禁用

启动Eclipse后,Mven似乎将编译器设置设置为1.5并忘记所有其他全局代码样式设置,以确保更高的代码质量.

有没有办法禁用此功能?或者我可以在POM中指定所有编译器和代码样式检查吗?

这非常烦人,因为Ecplise无法运行应用程序,因为不允许覆盖接口的注释.在重启后始终设置Java compiler- >中的勾选Enable project specific settings.

java eclipse m2eclipse maven m2e

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

将字符串转换为星期几(不是确切的日期)

我收到的String是一周的拼写日,例如星期一.现在我想得到那天使用的常量整数表示java.util.Calendar.

我真的必须自己做if(day.equalsIgnoreCase("Monday")){...}else if(...){...}吗?有一些简洁的方法吗?如果我挖出SimpleDateFormat并与Calendar我混合产生几乎与打字丑陋的if-else-infitity statetment一样多的行.

java calendar date dayofweek simpledateformat

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