Set 类型不是泛型;它不能用参数进行参数化 <Integer>

问题描述 投票:0回答:6

我的 Eclipse 遇到了这个奇怪的问题。 出现此错误

The type Set is not generic; it cannot be parameterized with arguments <Integer>

我再次清理并构建了我的项目。 检查我的配置构建路径并确保 JRESystemLibrary 位于 Order 和 Export 中的 MavenDependencies 之上。

Google 也搜索过,但我找不到我的代码有任何问题。 为什么会出现错误。

enter image description here

java eclipse
6个回答
21
投票

当您调用

Set
时,它会被视为 您的班级 设置,而不是
java.util.Set

将声明更改为

java.util.Set
,应该可以解决。


7
投票

你的 main 方法认为 Set 是它所包含的类。

你想要 java.util.Set

我的建议是重命名你的班级:p


3
投票

我也遇到了同样的错误,但只需更改项目的某些属性即可解决。

右键单击您的项目 --> 属性 --> 从右侧面板中选择“Java Build Path” --> 选择“Order and Export”选项卡 --> 单击您的 JRE 系统库或 JDK 库 --> 单击单击“向上”按钮并将其移动到第一个位置 --> 单击“确定”并清理并构建您的项目。

如果有任何依赖项,也请对所有其他依赖项目重复此操作。

它解决了我的问题,因为以前 java 文件正在选择其他库和包,而不是从 jre 包中选择,因为它是按最后优先级排序的。

谢谢, 瑞坦克 R.


2
投票

我遇到了同样的问题并按照以下步骤操作

右键单击您的项目 --> 属性 --> 从右侧面板中选择“Java Build Path” --> 选择“Order and Export”选项卡 --> 并检查 JRE 系统库是否存在于顶部或不存在出现在顶部,选择此项并单击“应用”。然后创建新类


1
投票
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());


   }

  }

0
投票

将您的班级重命名为不同的名称。

使用完全限定名称。

 java.util.Set<Integer> set = new HashSet<>();

如果您使用 Java 11 或更高版本,则无需使用完全限定名称。

您可以使用 Java 10 中引入的 var 关键字来声明局部变量,而无需显式指定类型。

var set = new HashSet<Integer>();
© www.soinside.com 2019 - 2024. All rights reserved.