gpt4 book ai didi

java - 此错误的原因: The type Test is not accessible due to restriction on required library?

转载 作者:行者123 更新时间:2023-12-01 12:57:46 33 4
gpt4 key购买 nike

**Description** 

Access restriction: The type Test is not accessible due to restriction on required library

**Resource**

/Applications/Eclipse Java/plugins/org.junit_4.11.0.v201303080030/junit.jar

**Path**

AdditionTest2.java

**Location**

/Practice/src/testing line 5

**Type**

Java Problem

我已经看到了这些其他 SO 线程的答案:

Access restriction on class due to restriction on required library

Access restriction on class due to restriction on required library rt.jar?

并且我已经应用了修复 - 构建路径 --> 删除系统库 --> 将其添加回来,并且它可以工作。但是,我仍然有两个问题:

1.为什么代码还是红色高亮?

顺便说一下,代码如下

package testing;

import static org.junit.Assert.*;

import org.junit.Test;

public class AdditionTest2 {
// @Test is underlined red
@Test
public void testAddition() {
Addition add = new Addition();
int[] numbers = {1, 2};

// this line is underlined red
assertEquals("1 + 2 must be 3", 3, Addition.add(numbers));
}

}

2.什么原因导致这个错误?再次,我已经阅读了这两个主题,但我仍然不明白。

谢谢!

巴乔

编辑:实际上,我的观点是正确的 - 它不起作用。我不太熟悉 eclipse 中的测试,但是在 JUnit 选项卡下,没有任何反应。

编辑 2:构建路径图像(如果有帮助的话) Build Path

编辑 3:为 JUnit 3 和 JUnit 4 构建路径镜像

Build Path for JUnit 3 and JUnit 4

编辑 4 + 解决方案:实际上,JUnit 4 的测试代码根本不运行 - 当我单击“运行”时 -->“运行”,因为它没有运行 - 我尝试删除 JUnit 3 从构建路径,它现在可以工作了!但现在我还有另一个问题,就是不知道为什么测试失败,但那是另一个问题。

最佳答案

Eclipse 基于 OSGi。 OSGi 有一个概念:“是的,你可以看到这个类,但你最好不要使用它。”它是私有(private)类的扩展。

一般的想法是,某人的代码包含公共(public) API,并且包含公共(public)类,因为 Java 编译器需要它,但它们不是公共(public) API 的一部分。

示例是 Java 运行时中的类,它们位于 com.sun 包中。由于只有 Oracle 版本的 Java 包含它们,因此使用它们对您来说是不好的。这就是 Eclipse 开发人员将检查添加到他们的编译器中的原因。

就您而言,错误消息看起来很奇怪。 junit.jar 不包含私有(private) API。我的猜测是,您以某种方式引入了错误的 JUnit JAR(即 Eclipse 认为是私有(private)的且只能由 IDE 访问的 JAR)。

尝试使用Built Path--> Add Libraries将“JUnit”添加到您的项目中,而不是手动添加JAR。

[编辑] 如果您使用Built Path--> Add Libraries 添加 JUnit JAR,则不应发生此错误。事实上,它一开始就不应该是错误 - 访问限制是警告。

尝试将编译器选项重置为默认值,然后重试。

关于java - 此错误的原因: The type Test is not accessible due to restriction on required library?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23753214/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com