- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何生成具有以下签名的方法?
public static <T extends MyClass & MyInterface> MyOtherClass someMethod(T type)
最佳答案
使用 TypeVariableName
以及addTypeVariable
可能会有所帮助 -
import com.squareup.javapoet.*;
import javax.lang.model.element.Modifier;
import java.io.IOException;
public class AttemptGeneric {
public static void main(String[] args) throws IOException {
ClassName myClass = ClassName.get("com", "MyClass");
ClassName myOtherClass = ClassName.get("com", "MyOtherClass");
ClassName myInterface = ClassName.get("com", "MyInterface");
TypeVariableName typeVariableName = TypeVariableName.get("T", myClass);
MethodSpec methodSpec = MethodSpec.methodBuilder("someMethod")
.returns(myOtherClass)
.addModifiers(Modifier.PUBLIC, Modifier.STATIC)
.addTypeVariable(typeVariableName.withBounds(myInterface))
.addParameter(typeVariableName,"type")
.build();
TypeSpec genericClass = TypeSpec.classBuilder("GenericImpl")
.addModifiers(Modifier.PUBLIC, Modifier.FINAL)
.addMethod(methodSpec)
.build();
JavaFile javaFile = JavaFile.builder("com", genericClass)
.build();
javaFile.writeTo(System.out);
}
}
注意 - 我的 MyClass
、MyOtherClass
和 MyInterface
全部都有在名为 com
的包中,实现此 main()
的类也驻留在该包中。
使用进口 -
<小时/>生成输出为--
package com;
public final class GenericImpl {
public static <T extends MyClass & MyInterface> MyOtherClass someMethod(T type) {
}
}
关于JavaPoet 通用参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41916359/
有没有办法在javapoet库中生成内部类。我可以用构造函数和方法生成类。但我不知道如何创建内部类 最佳答案 使用 TypeSpec.Builder#addType方法。见 nestedClasses
我想生成这样的字段: public static Map> ID_MAP = new HashMap>(); WildcardTypeName.subtypeOf(Object.class) 可以给
谁能告诉我如何使用 JavaPoet 向字段添加注释? 到目前为止,我设法探索的所有示例都是关于向类和方法添加注释。 看起来我在这里遗漏了一些非常简单的东西。 最佳答案 万岁,我已经想通了,所以可能对
JavaPoet:版本 1.5.1 JDK:1.7 我正在使用注释来生成代码。这是我正在尝试的事情。 以下内容可作为该项目的一部分: @GenService public abstract class
我尝试生成带有注释的表达式: @NamedQueries({@NamedQuery(name = "E.findAll", query = "SELECT e FROM E e")}) 我尝试了下面的
如何使用 JavaPoet 创建静态导入? 我尝试生成的代码如下所示: import static com.test.Types.*; 最佳答案 备案:自1.5.0起支持静态导入 参见 JavaFil
有没有办法添加 EnumConstants 的动态列表 - 我希望看到 addEnumConstants()。 似乎与addFields()或addMethods()没有相似之处? 最佳答案 确实有n
如何生成具有以下签名的方法? public static MyOtherClass someMethod(T type) 最佳答案 使用 TypeVariableName以及addTypeVaria
我正在玩注解处理器和 JavaPoet。我有一个用@MyAnno 注释的方法: @MyAnno Observable get(int id); 我想生成一个有方法的类: AsyncSubject ge
如何让 javapoet 生成下面的 java 代码? class B implements A { } 我知道有一个class WildcardTypeName ,但它只能生成? extends U
如何生成具有以下签名的方法? public void doSomething(T t) 到目前为止我有: MethodSpec.methodBuilder("doSomething")
我正在尝试向 TypeSpec 添加一个内部类(例如 interface Listener{})。我还想在我的 TypeSpec 中添加一个类型为 Listener 的字段。我怎样才能实现这样的目标?
我尝试在 JavaPoet api 中创建 TestSuite。我在 testClasses 中有包含 junit 类的 List,所以我想添加成员注释,但 addmember 允许我们一次仅添加一个
嘿,我正在尝试生成这样的类: public abstract class ResourceListAdapter extends RecyclerView.Adapter {} 目前我可以生成: pu
我一直在尝试在注解处理器中生成代码。 考虑以下代码,它添加了一个包含语句的构造函数。 private void addRegister(ExecutableElement el) { Meth
我创建了一个使用 JavaPoet 生成类的 Android 库。它适用于我的本地工作区;即使我将库模块包含到另一个项目中。 现在我正尝试通过 bintray 将我的项目放到网上。项目已正确上传,但是
在 JavaPoet 中,我需要创建一个 TypeName 的实例来表示给定名称的内部类。 我有一个外部类的 TypeSpec.Builder classBuilder。不知道下一步该做什么。 请注意
我正在开发一个注释处理器库,并使用 JavaPoet 生成一些 Java 代码。我需要生成一个带有用匿名类声明的字段的类,如下代码所示: public class Dummy { privat
是否可以使用JavaPoet生成以下枚举类? public enum EnumName { import com.sth.sth.SomeClass1; import com.sth.sth.
我正在使用注释处理器并使用 JavaPoet 从处理中生成输出类,但我似乎无法找到一种方法让生成的方法返回正确类型的对象。例如,我想要的输出是这样的…… public static final Map
我是一名优秀的程序员,十分优秀!