Tag: 编译时

编译时间与运行时错误

可能重复: 运行时与编译时间 我怎么知道Java中的特定代码行是否会抛出编译时或运行时错误? 假设特定的代码行无论如何抛出并出错。

Java获取编译时安全方法名称

在使用reflection类和注释时,我发现没有明确的方法以编译时安全的方式引用方法名称。 我真正想要的是能够引用注释中的方法。 可能看起来像: @CallAfter(method=Foo.class.foo()) void Bar() { … } 目前你只能使用字符串,这不是编译时安全的..这是一个问题,因为它破坏了静态类型的Java。 我找到的唯一解决方案就是下面的内容。 但是,这仍然无法帮助引用注释中的方法。 🙁 public static String methodName = null; public static void main(String[] args) { // .foo() is compile-time safe loadMethodName(IFoo.class).foo(); System.out.println(methodName); } public static T loadMethodName(Class mock) { return (T) Proxy.newProxyInstance(mock.getClassLoader(), new Class[] { mock }, (obj, method, args) -> { methodName = method.getName(); […]

在编译时获取generics类

虽然我知道你因为类型擦除而无法在运行时获得generics的类型,但我想知道是否有可能在编译时获取它。 class ObjectHandle { T obj; void setObj(T o) { obj = o; } } class ObjType {} class SubObjType extends ObjType {} … ObjectHandle handle = new ObjectHandle(); … ObjType obj = [method that returns an ObjType]; if(obj instanceof [handle’s generic class, here SubObjType]) { handle.setObj(obj); // cast??? } 这里编译器知道handle的generics的类型和我想要的是什么,所以当我决定更改类时,我不必更改handle的类型和instanceof检查(和强制转换)(在代码中,当然不是在运行时)。

编译日期和时间

是否存在与C&C ++编译时常量__DATE__和__TIME__等效的Java。 我需要打印正在编译的程序的编译时间和版本信息。 谢谢 kodev19

获取java类的编译时间戳

是否可以为本地运行的Java应用程序以及applet和/或JNLP webapps可靠地确定给定类的编译时间戳?