在尝试使用-Xlint开关后,我收到了两个警告。如何解决这些警告?
test:quadrantRDBTemplate mymac$ javac -Xlint:unchecked -cp mysql-connector-java-5.0.jar:iucbrf.jar *.java
QuadrantSystemRDB.java:271: warning: [unchecked] unchecked call to put(K,V) as a member of the raw type java.util.HashMap
argMap.put(xKey, new UniformDistr
这是我写的代码吗?
Set keys = map.keySet();
SortedSet s = new TreeSet(keys);
我得到的警告是:
warning: [unchecked] unchecked call to TreeSet(java.util.Collection<? extends E>) as a
member of the raw type java.util.TreeSet
如何摆脱编译器警告?
当我试图编译以下代码时,为什么会引起警告?
Bag.java:
import java.util.List;
public interface Bag<T> {
public List<String> getOwnerNames();
}
BagException.java:
public class BagException extends Exception {
public BagException(Bag badBag) {
super(buildMessage(badBag));
}
private stati
我得到了“未检查的赋值:java.util.List to java.util.List<java.lang.Integer>”,在行中有注释。当GetList参数更改为GetList<?>时,将清除警告。
我不明白为什么GetList泛型会影响getIntegerList()的结果。在Intellij和Eclipse中都尝试过。这是正常的还是警告信息是错误的?
import java.util.ArrayList;
import java.util.List;
public class GetList<T> {
private final Lis
我使用的是Android Studio 1.1.0。
这不会导致任何警告:
public static class A {
public Map<Integer, String> getMap() {
return null;
}
}
public static class B {
public void processA(A a) {
Map<Integer, String> map = a.getMap();
}
}
但是要使A泛型:
public static class A<T> {
我的目标是实现一个接受类实例的操作,但前提是具体传递的类继承自Collection。
我在我的代码上得到了无法解析的编译器警告。
package com.fun.with.generics;
import java.util.ArrayList;
import java.util.Collection;
public class AcceptTypedClass
{
// Warning here on 'Collection': ... raw type, references should be parameterized.
private static
我有一个这样的课程
public class Symbol implements Iterable<Integer> {
private int n = 123;
public Iterator<Integer> iterator() {
return new Iterator() {
int counter = 0;
@Override
public boolean hasNext() {return counter < n;}
我有这本书中的Thinking in Java中的代码,其中布鲁斯指出了调用set()方法时的警告。守则如下:
package testPackage;
class GenericBase<T> {
private T element;
public void set(T arg) { arg = element; }
public T get() { return element; }
}
class Derived1<T> extends GenericBase<T> {}
class D
考虑以下代码:
import java.util.ArrayList;
import java.util.List;
public class UnboundedWildcardProblem {
public static void main(String[] args) {
List<?> a = new ArrayList();
List<? extends Object> b = new ArrayList();
}
}
List<?>的创建不会产生任何警告,但是创建List<? extend
在Java 10中,这给了我一个警告-
ArrayList a = new ArrayList<>();
a.add(23);
a.add("str");
"ArrayList是原始类型。对泛型ArrayList的引用应该参数化“
其原因是通用的,但这段代码
var b = new ArrayList<>();//Object type
b.add(3);
b.add("string");
为什么编译器没有给出任何警告?
注意事项:-我知道var仅限于方法范围。我只想知道设计概念被切除到var的泛型中。
Edit1:-不要
我刚安装了jdk1.7.0_07,突然被大量关于泛型raw类型的警告淹没了。(我收到了数以百计的警告,它们混淆了其他可能有意义的警告。)据我所知,这些错误不应该生成,而且我在java-6-openjdk-i386中也没有得到它们。
我已经创建了下面的小示例。(每个类都在自己的文件中。)
public interface Generic<T> {
public T get( );
}
public class Test {
public Test safeAsHell( Generic thing, int number ) {
return ne
我想更新一个Android库项目的Gradle插件。新版本是0.10.4。Gradle包装器位于1.10。当我在项目上运行时,将出现以下警告。
Converting class com.android.build.gradle.internal.api. \
DefaultAndroidSourceDirectorySet to File using toString() method has
been deprecated and is scheduled to be removed in Gradle 2.0.
Please use java.io.File, java.lang.St
我一直在YouTube上学习Java,在JComboBox教程和之后,我在我的程序中发现了三个警告。
FirstClass.java
import javax.swing.JFrame;
public class FirstClass {
public static void main(String args[]) {
Scrabble go = new Scrabble();
go.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
go.setSize(300,200);
目前,我正在尝试使用Java中的观察者模式的一个泛型实现,除了它生成未检查的调用警告(如果可能的话)之外,它似乎运行得很好。实现如下所示:
接口,IObservable.java:
public interface IObservable<T> {
void addObserver(IObserver<T> observer);
void removeObserver(IObserver<T> observer);
}
基类Observable.java:
import java.util.ArrayList;
public class O
我在这里遇到了一个小问题,关于带有列表的泛型有界类型。请帮帮忙!
Model.java
public class Model {
}
ClassA.java
public class ClassA<T extends Model> {
private List<T> models;
public ClassA() {
models.add((T) new Model());
}
}
它为我提供了从Model到T的未经检查的转换,在这一行上警告:
models.add((T) new Model());
我知道我收到了这个警告,因