相关疑难解决方法(0)

如何正确导入stddraw?

编辑:IntelliJ CE

我想要的:能够写作

setCanvas(500,500);
Run Code Online (Sandbox Code Playgroud)

代替

StdDraw.setcanvas(500,500);
Run Code Online (Sandbox Code Playgroud)

问题:我不知道如何正确导入 Stddraw 库。如果我只是这样做

import StdDraw;
Run Code Online (Sandbox Code Playgroud)

IntelliJ 告诉我“StdDraw”符号无法解析。如果我将其注释掉,我可以从 StdDraw 调用方法,但我必须编写 StdDraw.setcanvas(500,500);

StdDraw.java 与 Solver.java 位于同一目录中。

代码:

    import java.io.File;
    import java.io.FileNotFoundException;
    import java.util.ArrayList;
    import java.util.Scanner;
//    import StdDraw;//StdDraw is in the same directory as Solver

public class Solver {

    public static void main(String[] args) {
        System.out.println("Solver main is running.");

        StdDraw.setCanvasSize(500, 500);
        StdDraw.setPenColor(StdDraw.RED);
        StdDraw.filledRectangle(0,0,10,10);
     }
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试过: - 确保 Stddraw.java 与我正在编译和运行的文件位于同一目录中 - 查看http://introcs.cs.princeton.edu/java/stdlib/javadoc/StdDraw.html - 搜索完整的代码示例,即。显示如何导入库的代码 - 搜索 YouTube 教程 - 阅读https://www.jetbrains.com/idea/help/library.html - 在 StdDraw 前面添加一些东西,例如。stblib.StdDraw

java import intellij-idea stddraw

5
推荐指数
1
解决办法
4万
查看次数

将库作为包私有导入

我知道我们可以在java中创建一个包私有类.所以该类是Internal,只能在指定的模块中访问:

class MyPackagePrivateClass
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

现在我正在开发一个我命名的安卓库,LibraryA我希望使用LibraryB我自己的存在LibraryA.如何防止用户直接LibraryA使用LibraryB

是否有任何概念,如包私有库或类似的东西?

更新(对于那些问'我为什么需要这个?'的人)

LibraryB有这样的方法:

public QueryBuilder select(String... columns);
Run Code Online (Sandbox Code Playgroud)

但我强烈认为我们应该使用Type-Safe Enum pattern和阻止用户将字符串传递给这些方法(考虑维护和重构问题).所以我决定将这些方法包装在LibraryA:

public TypedQueryBuilder select(Column... columns) {
        queryBuilder = queryBuilder.select(toString(columns));
        return this;
    }
Run Code Online (Sandbox Code Playgroud)

因此我的库的用户应该使用我提供的Typed方法(Column这里是一个类型安全的枚举).但是,如果他们可以访问原始方法,他们可能会使用这些方法,我倾向于禁止这样做.

java android

5
推荐指数
1
解决办法
95
查看次数

在Kotlin进行JUnit测试

警告:我是TDD和Kotlin的巨头.

我在Web上找到了很好的代码片段,用于在Kotlin中编写JUnit测试,但是当我复制并粘贴时,IntelliJ不会自动导入kotlin.test.*org.junit.Test.通常在Eclipse中,当我复制并粘贴这样的代码片段时,IDE可以找出这些库在我的底层Java安装中的位置.图Kotlin/IntelliJ将是相同的.

在下面的截图中,任何想法为什么我无法导入测试库?他们需要明确地添加到我的路径吗?我需要把这些下test,而不是在src文件夹?

谢谢 在此输入图像描述

junit kotlin

4
推荐指数
1
解决办法
7036
查看次数

如何导入本地 *jar 每个 gradle?

我包含了一个本地 *.jar 文件(库),如此处所述..

\n\n
    \n
  1. 单击工具栏中的“文件”
  2. \n
  3. 项目结构
  4. \n
  5. 在左侧面板中选择模块
  6. \n
  7. 依赖项选项卡
  8. \n
  9. \'+\' \xe2\x86\x92 JAR 或目录
  10. \n
\n\n

现在,我将 Android 项目提交到 github,并且该本地 jar 文件的先前设置似乎丢失了。

\n\n

每当同事签出该项目时,他们都没有其他 jar 文件的路径。

\n\n

问题:

\n\n
    \n
  1. 我可以在哪里在 gradle(或任何其他文件)中指定上面的这些步骤以链接到该 *.jar 文件?
  2. \n
  3. 另一种可能性是libs我的应用程序模块中的文件夹。与1相比有什么优点和缺点?
  4. \n
  5. 其他可能性还包括将 jar 添加到我的 git 中!?
  6. \n
\n

intellij-idea gradle android-build android-gradle-plugin

4
推荐指数
1
解决办法
1万
查看次数

如何从java使用域

我有任务准备领域数据库,然后将其打包到android项目中的res目录,但目前我尝试创建RealmConfiguration时有异常:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no realm-jni in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1865)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1119)
at io.realm.internal.RealmCore.loadLibrary(RealmCore.java:69)
at io.realm.RealmConfiguration$Builder.<init>(RealmConfiguration.java:321)
at jujumedia.coffeeguide.PreBuildLoader.main(PreBuildLoader.java:35)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
Run Code Online (Sandbox Code Playgroud)

java realm

-2
推荐指数
1
解决办法
794
查看次数