我的 Eclipse 遇到了这个奇怪的问题。 出现此错误
The type Set is not generic; it cannot be parameterized with arguments <Integer>
我再次清理并构建了我的项目。 检查我的配置构建路径并确保 JRESystemLibrary 位于 Order 和 Export 中的 MavenDependencies 之上。
Google 也搜索过,但我找不到我的代码有任何问题。 为什么会出现错误。
当您调用
Set
时,它会被视为 您的班级 设置,而不是 java.util.Set
。
将声明更改为
java.util.Set
,应该可以解决。
你的 main 方法认为 Set 是它所包含的类。
你想要 java.util.Set
我的建议是重命名你的班级:p
我也遇到了同样的错误,但只需更改项目的某些属性即可解决。
右键单击您的项目 --> 属性 --> 从右侧面板中选择“Java Build Path” --> 选择“Order and Export”选项卡 --> 单击您的 JRE 系统库或 JDK 库 --> 单击单击“向上”按钮并将其移动到第一个位置 --> 单击“确定”并清理并构建您的项目。
如果有任何依赖项,也请对所有其他依赖项目重复此操作。
它解决了我的问题,因为以前 java 文件正在选择其他库和包,而不是从 jre 包中选择,因为它是按最后优先级排序的。
谢谢, 瑞坦克 R.
我遇到了同样的问题并按照以下步骤操作
右键单击您的项目 --> 属性 --> 从右侧面板中选择“Java Build Path” --> 选择“Order and Export”选项卡 --> 并检查 JRE 系统库是否存在于顶部或不存在出现在顶部,选择此项并单击“应用”。然后创建新类
import java.util.Iterator;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import java.util.Set;
public class ChildWindow {
public static void main(String[] args) {
// TODO Auto-generated method stub
WebDriver driver= new FirefoxDriver();
driver.get("https://accounts.google.com/");
driver.manage().window().maximize();
System.out.println("Existing Url");
System.out.println(driver.getTitle());
System.out.println("Url-1");
driver.findElement
(By.xpath(".//*[@id='footer-list']/li[4] /a")).click();
System.out.println(driver.getTitle());
//get all windows ids -driver.getWindowHandles()
Set<String>ids=driver.getWindowHandles();
Iterator<String> it =ids.iterator();
String Childid1=it.next();
String Childid2=it.next();
driver.switchTo().window(Childid2);
System.out.println("2nd Url");
System.out.println(driver.getTitle());
}
}
将您的班级重命名为不同的名称。
或
使用完全限定名称。
java.util.Set<Integer> set = new HashSet<>();
或
如果您使用 Java 11 或更高版本,则无需使用完全限定名称。
您可以使用 Java 10 中引入的 var 关键字来声明局部变量,而无需显式指定类型。
var set = new HashSet<Integer>();