如何从另一个java文件中导入java类,其中类具有访问权限" package"

时间:2016-06-04 09:01:47

标签: java import

解释我请问如何在下面的情况下进行导入课程。 我有两个java文件(这是示例)。第一:

package com.mypackage.task

public class TaskF7 {

    public static void main(String[] args) {
    }
}

class Database {
}

class Employee {
}

第二档:

package com.mypackage.test

import com.mypackage.task.TaskF7.*; // import does not work
import com.mypackage.task.TaskF7.Employee; // import does not work

public class TestF7 {

    public static void main(String[] args) {
        testTask();
    }

    // so, my IDEA mark as red <Employee> below
    public static void testTask(List<Employee> expected, List<Employee> actual> ) {
    if (Arrays.deepEquals(expected.toArray(), actual.toArray())) {
        System.out.println("passed");
    } else {
        System.out.println("failed: expected " + expected + ", actual " + actual);
    }
}

类Employee具有包访问权限。

请注意:在任务写入中:&#34;将所有解决方案类放在一个文件中(而不是内部类)。 &#34;不是内部类

3 个答案:

答案 0 :(得分:1)

您无法访问包外的包访问权限的类。您可以将Employee类更改为public或更改my.package.test的包

答案 1 :(得分:0)

您可以通过将其设为“内部类”来访问它,但您应该将其公开

public class TaskF7 {
   public class Employee {
   }

    public static void main(String[] args) {
    }
}

public class TaskF7{
   public static void testTask(List<TaskF7.Employee> expected,   
                               List<TaskF7.Employee> actual ) {
      if (Arrays.deepEquals(expected.toArray(), actual.toArray())) {
          System.out.println("passed");
      } else {
          System.out.println("failed: expected " + expected + ", actual " +   
          actual);

      }
   }
}

现在你的IntellijIDEA不会给出任何红色标志下划线错误:)

答案 2 :(得分:0)

我这样解决: 1。

 public static void testTask(Object expected, Object actual> ) {
    if (expected.equals(actual)) {
        System.out.println("passed");
    } else {
        System.out.println("failed: expected " + expected + ", actual " + actual);
}

2

Class Employee {

    @Override 
    equals(){
    }

    @Override
    hashCode(){
    }
}