相关疑难解决方法(0)

什么是原始类型,为什么我们不应该使用它?

问题:

  • 什么是Java中的原始类型,为什么我经常听说不应该在新代码中使用它们?
  • 如果我们不能使用原始类型,它有什么替代方案,它是如何更好的?

java generics raw-types

617
推荐指数
13
解决办法
20万
查看次数

<?>和<?之间有什么区别?在Java Generics中扩展Object>?

我已经看到之前使用的通配符表示任何对象 - 但最近看到使用:

<? extends Object>
Run Code Online (Sandbox Code Playgroud)

由于所有对象都扩展了Object,这两个用法是同义词吗?

java generics syntax

88
推荐指数
3
解决办法
4万
查看次数

Javac旗帜禁止原始类型?

有没有可以传递的Java编译器标志告诉编译器不允许使用原始类型?也就是说,对于任何泛型类,让编译器强制使用参数化版本,否则抛出编译错误?

java generics javac

10
推荐指数
3
解决办法
1440
查看次数

列表<?> vs List <?extends Object>

可能重复:
<?>和<?之间有什么区别?在Java Generics中扩展Object>?

我发现List<?>List<? extends Object>以同样的方式行事.至于我,它们之间没有区别.如果我不对,你能解释一下我的区别吗?

import java.util.ArrayList;
import java.util.List;

public class TestClass {

static void func1(List<?> o, Object s) {
    o.add(null); // only null
    o.add(s); // wrong
    o.get(0);  // OK
}

static void func2(List<? extends Object> o, Object s) {
    o.add(null); // only null
    o.add(s); // wrong
    o.get(0); // OK
}

public static void main(String[] args) {
    func1(new ArrayList<String>(), new Integer(1));
    func2(new ArrayList<String>(), new Integer(1));

    List<? extends Object> list1 = new ArrayList<Object>();
    List<?> list2 = …
Run Code Online (Sandbox Code Playgroud)

java generics

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

标签 统计

generics ×4

java ×4

javac ×1

raw-types ×1

syntax ×1