小编Joa*_*uer的帖子

如何防止Java中的方法重载?

使用关键字可以防止覆盖方法final,同样如何防止重载?

java overloading

11
推荐指数
2
解决办法
6855
查看次数

在给定特定PID的情况下,如何在Java中终止进程

如果我有特定的PID,如何从Windows上的Java代码中删除特定进程.

java windows

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

运算符在Java中重载

根据我在java中的知识,我知道,Java语言中没有运算符重载.那么,为什么这段代码会两次打印'true'?

    String s1 = "abc";
    String s2 = "abc";
    System.out.println(s1==s2);

    Integer i1 = 1;
    Integer i2 = 1;
    System.out.println(i1==i2);
Run Code Online (Sandbox Code Playgroud)

java

11
推荐指数
3
解决办法
9561
查看次数

如何选择Locale常量?

Java类java.util.Locale具有一组public static final用于语言/国家/ 地区的字段,用于直接引用特定区域设置.其他语言环境可以通过适当的构造函数轻松使用.

但是,值的选择对我来说似乎相当武断.

语言是(按照它们出现在源中的顺序):英语,法语,德语,意大利语,日语,韩语,中文,简体中文,繁体中文

这些国家是:法国,德国,意大利,日本,韩国,中国,中国,台湾,英国,美国,坎达和加拿大法国(适用于当地的fr_CA).

有没有人有想法(甚至猜测)那些语言/国家如何选择?

java locale

11
推荐指数
2
解决办法
1944
查看次数

如何在最终编译之前使用java注释修改源代码?

我从apt工具页面读到,可以创建AnnotationProcessors来生成新的派生文件(源文件,类文件,部署描述符等).我正在寻找这样做的例子.

我需要在编译时对所有带注释的字符串进行编码,以便读取类文件不允许读取静态字符串:

基本代码:

String message = (@Obfuscated "a string that should not be readable in class file");
Run Code Online (Sandbox Code Playgroud)

应该重新修改为:

String message = new ObfuscatedString(new long[] {0x86DD4DBB5166C13DL, 0x4C79B1CDC313AE09L, 0x1A353051DAF6463BL}).toString();
Run Code Online (Sandbox Code Playgroud)

基于ObfuscatedString.obfuscate(String)TrueLicense框架的静态方法,处理器可以生成代码以替换带注释的字符串.实际上,这个方法生成字符串"new ObfuscatedString([numeric_code]).toString()".在运行时,ObfuscatedString的toString()方法能够返回在数字代码中编码的字符串.

关于如何编写AnnotationProcessor的process()方法来编辑带注释的代码的任何想法?

提前致谢,

java apt annotations

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

在不同的包中有两个同名的类是不好的做法?

我们已经拆分了应用程序,以便程序包A处理来自一个外部源和来自另一个外部源的数据包.在这两种情况下,我们都需要创建一个域对象并使用"Transformer"来执行此操作.

所以我有com.foo.bar.a.ThingTransformercom.foo.bar.b.ThingTransformer

我怀疑这是不好的做法,但想看看SO的优秀人才.

java coding-style packages

11
推荐指数
3
解决办法
2978
查看次数

为什么菱形运算符不能在Java 7中的addAll()调用中工作?

给出了泛型教程中的这个例子.

List<String> list = new ArrayList<>();
list.add("A");

// The following statement should fail since addAll expects
// Collection<? extends String>

list.addAll(new ArrayList<>());
Run Code Online (Sandbox Code Playgroud)

为什么最后一行不能编译,它似乎应该编译.第一行使用非常相似的构造并编译没有问题.

请详细解释.

java generics diamond-operator java-7

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

Java泛型错误?

让我们有以下类层次结构:

public class MyType {
}

public class MySuperclass<T extends MyType> {
    protected Map<String, String> myMap = new TreeMap<String, String>();
    protected String myMethod(String s) {
        return myMap.get(s);
    }
}

public class MySubclass extends MySuperclass {
    @Override
    protected String myMethod(String s) {
        return myMap.get(s); // <-- compilation error
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么在overriden方法中存在编译错误MySubclass?错误消息是"类型不匹配:无法从对象转换为字符串".

有趣的是,如果我MySuperclassMySubclass定义中定义泛型类类型,则编译错误消失了:

public class MySubclass extends MySuperclass<MyType> {
    @Override
    protected String myMethod(String s) {
        return myMap.get(s);
    }
}
Run Code Online (Sandbox Code Playgroud)

有人可以解释这种行为吗?我认为这是一个Java编译器错误.

我正在使用jdk1.6.0_24.

java generics

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

从ArrayList <CustomObject>中查找项目索引的更好方法

首先,如果我错了,请纠正我.我想在ArrayList<CustomType>不使用For循环的情况下找到Item的索引(即字符串值).

POJO:

id;
name;
Run Code Online (Sandbox Code Playgroud)

码:

ArrayList<POJO> list = new ArrayList<POJO>;

//Lots of data added to these list...
Run Code Online (Sandbox Code Playgroud)

现在我想从arraylist中找到特定名称的id而不使用下面的for循环.

String id = null;
// TODO Auto-generated method stub
for (int i = 0; i < list.size(); i++) {
    if("ABCD".equalsIgnoreCase(list.get(i).getName())) {
        id = list.get(i).getId();
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

理想情况下,我不想实现For循环,因为在某些情况下,我在List中有500多个数据,并且使用For循环查找索引不是一个好方法.

java search arraylist indexof

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

在没有无限强度JCE文件的情况下,AES256加密解密是否可行?

我正在开发的项目有一个需要AES加密和解密的段.从我可以查找的所有可能的互联网资源中,很难找到任何AES256加密的参考,而无需从Sun(现在的Oracle网站)下载和安装Unlimited Strength JCE文件.除了分发相同的法律问题之外,在要求最终用户访问特定网站并下载某些文件,将它们放入目录然后将内容添加到类路径时,它实际上并没有帮助我们.在Windows等!

在互联网上有一些关于BountyCastle的轻量级API的引用可能不需要JCE文件,但我无法查找一个非常相关的参考或示例.

不确定,但这是其他所有编程语言的问题吗?

如果没有安装了那些特定JCE文件的AES 256位加密,那么JNI方法可以帮助吗?

为了详细说明,AES 256加密可以在C/C++中完成,然后我可以调用那些使用JNI获得所需结果吗?打包软件(作为jar文件)会引起关注,还是会出现其他问题?

另一个重要的因素是该项目将同时运行Mac和Windows,因此可能是使用C/C++(特定编译器/解释器版本或任何东西)的限制?

有没有不同的方法来处理这个?还有其他方法吗?

java encryption java-native-interface aes

11
推荐指数
2
解决办法
6776
查看次数