【java – 原始类型.应参数化对泛型类型的引用】教程文章相关的互联网学习教程文章

如何限制Java泛型类型中允许的类型数量【代码】

说,我有一个通用类型如下public class GenericType<T> {private T someVar;public void setVar(T var) { this.someVar = var; }//Rest of the code }我想允许它只采用特定类型(String / Integer / Double).我知道有限的通配符,但他们在这里没有帮助我.在setVar()中,如果type不是Integer / String等,我可以检查instanceof并抛出异常.这是最好的方法吗? 在对此类型执行操作时遇到同样的问题.根据类型,我想做不同的操作.继承和有界通...

java – 使用泛型类型和通用字段名称的GSON反序列化【代码】

假设我们有这样的结构: JSON:{"body": {"cats": [{"cat": {"id": 1,"title": "cat1"}},{"cat": {"id": 2,"title": "cat2"}}]} }和相应的POJO: Response.class 私人最终身体; Body.class 私人最终收藏< CatWrapper>猫 CatWrapper.class 私人决赛猫猫 Cat.classprivate final int id; private final String title;但是,现在我们说我们有相同的结构,但我们收到卡车而不是Cat{"body": {"trucks": [{"truck": {"id": 1,"engine": "bi...

java – 原始类型.应参数化对泛型类型的引用【代码】

我有一个Cage类:public class Cage<T extends Animal> { // the construtor takes in an integer as an explicit parameter ... }我试图在另一个类main方法中实例化Cage的对象:private Cage cage5 = new Cage(5);我得到错误:Cage是原始类型.应参数化对泛型类型Cage的引用.我尝试了几个想法,但我对这种棘手的语法感到困惑:o(解决方法:笼&LT T&GT是一个泛型类型,所以你需要指定一个类型参数,就像这样(假设有一个类Dog extends An...

java – 具有流畅接口和继承的自绑定泛型类型【代码】

我正在使用一个流畅的继承接口.我宣布基类构造函数受到保护,因此你无法创建一个Foo< Bar>调用add()会导致ClassCastException.但我遇到了返回新Foo实例的静态方法的问题.public class Foo<T extends Foo<T>> // if i change to extends Foo i only get warnings {public static Foo<Foo> createFoo() // <-- error{return new Foo<Foo>(); // <-- error}protected Foo() {}public T add(){//...return (T)this;} }public class Bar ...

Java比较泛型类型【代码】

在Java中,我编写了一个二进制搜索树类,它使用递归添加节点.现在我想使用泛型来概括它,以便我可以更多地了解它们.public class GBinNode<T> {T item;GBinNode<T> left;GBinNode<T> right;public GBinNode(T newItem) {item = newItem;left = null;right = null;} public GBinNode(T it, GBinNode<T> le, GBinNode<T> ri) {item = it;left = le;right = ri;} public String toString() {return item.toString()+" ";} }我添加节点的功...

无法使用通配符泛型类型为Java集合添加值【代码】

为什么这段代码不能编译(Parent是一个接口)?List<? extends Parent> list = ... Parent p = factory.get(); // returns concrete implementation list.set(0, p); // fails here: set(int, ? extends Parent) cannot be applied to (int, Parent)解决方法:为了安全起见,这样做.想象一下,如果它有效:List<Child> childList = new ArrayList<Child>(); childList.add(new Child());List<? extends Parent> parentList = childL...

在循环Java 7中转换泛型类型【代码】

我有两种不同类型的需要迭代的集合,并且需要对集合中对象的一个??值求和.我怎么能用泛型来做这个,即没有为每种类型的Set写两种求和方法?private Double calculateFooScoreSum(final Set<Foo> fooScoreSet) {Double sum = 0.0;for (final Foo score : fooScoreSet){sum += score.getScore();}return sum; }private Double calculateBarScoreSum(final Set<Bar> barScoreSet) {Double sum = 0.0;for (final Bar score : barScoreSet...

java – 在Spring MVC中使用@RequestBody的泛型类型时出现“参数类型不匹配”错误【代码】

我正在尝试为Spring MVC实现一个通用的REST控制器:public abstract class GenericRestController<T extends GenericEntity> {protected final GenericService<T> service;public GenericRestController(GenericService<T> service) {this.service = service;}@RequestMapping(method = RequestMethod.GET)@ResponseStatus(HttpStatus.OK)public List<T> list() {return service.list();}@RequestMapping(method = RequestMethod.P...

java – 返回泛型类型的交集【代码】

我想让一个函数返回一个保证实现两个接口的对象.在编译时不一定知道确切的对象.我的代码看起来像:class HelloWorld {public interface A {}public interface B {}public static class C implements A, B {}public static class D implements A, B {}public static <T extends A & B> void g(T t) {}public static <T extends A & B> T f(boolean b) {if (b)return new C(); // Doesn't compilereturn new D(); // Doesn't compile...

Java – 如何在覆盖泛型类型的接口方法时获取具体参数类型【代码】

我是一个仿制药新手,我无法找到实现这一目标的最佳方法.如果我做了明显错误的事,请随时指出.interface Node<T> {void addOne(Node<T> node); }class StringNode implements Node<String> {List<StringNode> data = new ArrayList<>();/*** {@inheritDoc}*/@Overridepublic void addOne(Node<String> node) {StringNode stringNode = (StringNode) node;data.add(stringNode);}}我希望通过让函数本身具有签名public void addOne(Str...

java – 使用反射获取Field的泛型类型【代码】

有没有办法在Java中获取字段的泛型类型? 我有以下对象变量:protected ScheduleView<WantedClass> scheduleLine1; protected ScheduleView<SomeOtherClass> scheduleLine2;现在我尝试使用反射来获取所有具有ScheduleView作为类型的对象变量,其中WantedClass为泛型类型:Arrays.asList(this.getClass().getDeclaredFields()).stream().map(field -> {ScheduleView<WantedClass> retValue = null;System.out.println(field.getGener...

为什么JAVA在接口中使用泛型类型时无法编译【代码】

您好我在java中使用泛型类型时遇到问题.实际的问题是,当我在方法声明上使用泛型类型时工作正常.然后,如果我在接口声明中添加泛型类型,则代码不会编译.以下是工作代码:public interface IRuntimeConvert {public <T> T convertInstanceOfObject(String o, Class<T> clazz); }public class RuntimeConvertImpl implements IRuntimeConvert {private final Map<String, Object> hashMap;public RuntimeConvertImpl(Map<String, Objec...

java – 泛型类型实例化和Lambdas【代码】

我正在使用匿名函数和函数接口,我有一个功能接口,它接受两个相同类型的对象并返回true或false.package elementutils; @FunctionalInterface public interface TwoElementPredicate <T> {public boolean compare(T a, T b);}我使用另一个类中的函数接口来获取使用匿名函数的“更好的元素”,方法betterElement接受两个对象和功能接口的实例.然后我应该能够创建lambdas来比较main中相同类型的两个对象.package elementutils;public cl...

java – 为什么我不能使用泛型类型来实现非泛型签名【代码】

我对Java编译器有点困惑. 我有一个带有“Object”方法签名的接口:public interface Bean {public void setCreated(final Object created); }我想用泛型来实现它:public class BeanImpl<T extends Object> implements Bean{private T created;public void setCreated(final T created){this.created = (T)created;} }但是,这会产生编译器错误:Name clash: The method setCreated(T) of type BeanImpl<T> has the same erasure as...

java – 运算符”不能应用于’T’,’T’表示有界泛型类型【代码】

参见英文答案 > Generic type extending Number, calculations 2个下面的代码片段告诉我错误,如标题中所示,我没有弄清楚为什么它不起作用,因为T的类型为Number,我希望运算符”没问题.class MathOperationV1<T extends Number> {public T add(T a, T b) {return a + b; // error: Operator '+' cannot be applied to 'T', 'T' }}如果有人能提供一些线索,那将不胜感激,谢谢!解决方法:这种泛型算...

参数化 - 相关标签