草庐IT

asm-generic

全部标签

java - 如何在 Eclipse 中禁用警告 - 'Class is a raw type. References to generic type Class<T> should be parameterized'

当我编译第三方库时,会生成一些“应该参数化”的警告。我知道如何修复它们,但我不想这样做,所以我尝试禁用Eclipse中的所有警告/错误。但是,在禁用每个警告/错误后仍会生成警告。请帮忙。 最佳答案 您可以将@SuppressWarnings("rawtypes")添加到方法、语句或方法参数中以抑制此警告。例如,Eclipse插件中的一个常见插件是:@OverridepublicObjectgetAdapter(@SuppressWarnings("rawtypes")Classadapter)

java - 使用 Java ASM 库生成 'Hello, World!' 类

我已经开始为我正在处理的编译器项目摆弄ASMAPI。但是,我发现文档在很多地方对于新手来说都不够清晰,我认为有一个很好的例子可以生成一个简单地打印“Hello,World!”的类。将是一个很好的例子。目前,我可以生成一个带有main()的类(使用ClassWriter、ClassVisitor和MethodVisitor类),但我似乎不知道如何生成main的主体。谁能给我一个在ASM中生成类文件的示例:包含一个main()在main()中创建一个值为“Hello,World!”的本地字符串变量打印变量 最佳答案 您可以使用java编

c# - 类似于 Java 中的 C# .NET Generic List

java中的c#.net泛型列表如何?类似的东西:publicclassClientList:List{}Nikil的回答是完美的,我只想添加到任何想从列表中创建类的人:publicclassClientListextendsArrayList 最佳答案 Java的List接口(interface)(java.util.List)可以被泛化。换句话说,可以为List的实例指定一个类型,因此只能插入该类型的实例并从该List中读取。这是一个例子:Listlist=newArrayList();此列表现在仅针对String实例,这意味着

java - Eclipse 自动完成 : Java 1. 7 Generics Diamond

我刚刚升级到Luna(从开普勒),我注意到一些小(但很烦人)的问题:自动完成无法为变量初始化中已指定的泛型生成菱形“”。例如,当我键入:SetmySet=newHashSet我希望它会自动完成SetmySet=newHashSet();而不是SetmySet=newHashSet();我使用的是JDK1.7,合规级别也设置为1.7。同样很奇怪的是,当我在自动完成期间多次点击STRG+Space直到它再次到达java-autocompletion然后点击Enter它提供了预期的钻石。在我看来这很像一个错误。这个错误是“已知的”吗?这个问题有什么解决方法吗?找不到与此主题相关的任何内容。

java - 将代码添加到带有 Instrumentation : ASM or BCEL? 的 Java 类

我正在编写一个游戏引擎/库,其中有一个事件调度程序类,它通过调用“已注册”事件处理程序类的监听器方法来调度事件。可以通过调用适当的调度程序方法向事件调度程序注册事件处理程序/监听器。这显然会导致一些用于注册每个事件处理程序的样板代码(我的引擎的其他方面也有类似的样板代码),所以我想知道-在加载过程中使用Instrumentation添加所有必要的代码怎么样?事件处理程序类,因此在编码时无需显式注册事件调度程序-程序运行时会自动添加对调度程序注册方法的调用。据我了解,为了使用Instrumentation,应该使用一些字节码修饰符API。我知道两个-ASM和BCEL。我应该使用哪一个?显

java - 使用 Asm 字节码生成器 (ClassWriter) 生成具有泛型类型的方法

使用Asm定义简单的getter和setter很容易(幸运的是,它甚至在他们的FAQ中有解释)。但是没有提到的一件事是如何使用通用类型信息来实现这些,我一直无法找到文档。我实际上能够很容易地确定通用类型信息本身(因为代码将采用现有字段和/或方法,并且存在完整的通用类型处理和解析)。我只需要为包含泛型类型的类型生成泛型版本。我希望这就像修改签名AsmClassWriter/MethodVisitor调用一样简单,但文档中的一些评论表明它可能并不那么容易(因为泛型信息存储在与常规信息略有不同的位置)。编辑:看起来入口点是“ClassWriter.visitField/Method(....

Java 泛型函数 : how to return Generic type

这是一个Java通用模式:publicTgetResultData(ClassresultClass,other_args){...returnresultClass.cast(T-thing);}一个典型的调用是这样的:DoubleBufferbuffer;buffer=thing.getResultData(DoubleBuffer.class,args);当所需的返回类型本身是通用的时,我一直无法弄清楚如何干净地使用此模式。“具体”一点,如果像这样的函数想要返回Map怎么办??由于您无法为泛型获取类对象,当然,唯一的选择是传递Map.class,然后你需要一个cast和一个@Su

Java 泛型 : Accessing Generic Type at runtime

我希望在运行时访问已声明字段的通用类型。我以前的印象是,由于Java类型删除,这是不可能的。然而,情况并非如此,因为一些众所周知的框架在运行时通过反射利用泛型类型。例如,Guice将根据您提供的通用类型实现一个Provider:publicclassInjectable{@InjectprivateProvidersomeTypeProvider;}如何通过反射API访问字段或任何此类类型/方法/等的“So​​meType”通用属性?此外,了解如何通过Java6AnnotationProcessorAPI访问这些通用类型属性也会很有帮助。谢谢。编辑:谢谢大家的指点。我找到了一种使用ha

java - 使用 ASM 或 Javassist 提高字段获取和设置性能

我想避免在我正在开发的开源项目中进行反射(reflection)。在这里,我有如下类。publicclassPurchaseOrder{@PropertyprivateCustomercustomer;@PropertyprivateStringname;}我扫描@Property注释以确定我可以反射性地从PurchaseOrder设置和获取什么。有许多这样的类都使用java.lang.reflect.Field.get()和java.lang.reflect.Field.set()。理想情况下,我想为每个属性生成一个调用程序,如下所示。publicinterfacePropertyA

generics - 我可以在没有未经检查的异常的情况下使用 Collections.EMPTYLIST 吗?

是否有在我的Java程序中使用Collection.EMPTY_LIST的泛型友好方式。我知道我可以自己声明一个,但我只是想知道JDK中是否有一种方法可以做到这一点。类似于users=Collections.EMPTY_LIST; 最佳答案 通过执行以下操作:Listusers=Collections.emptyList();由于分配的左侧,从Collections.emptyList();返回的列表的类型将被推断为String。但是,如果您不想进行此推断,则可以通过执行以下操作来明确定义它:Listusers=Collection