获取IntelliJ以识别已修改的内部类方法

时间:2015-12-22 02:28:10

标签: java intellij-idea

在NetBeans中,我创建了一个类:java.awt.Canvas(我使用-XBootClassPath)。在这个类中,我添加了一个函数调用:“addPaintListener”。

当我编译时,它工作正常。我可以写代码(In netbeans。没有错误):

public static void notifyCanvasReady(Canvas canvas) {
    canvas.addPaintListener((PaintListener) g -> {
        g.setColor(Color.white);
        g.drawString("HELLO WORLD", 50, 50);
    });
}

但是在IntelliJ中,它给了我一个错误:

enter image description here

但是,如果我右键单击项目并点击编译模块,它编译正常(仍显示错误)但实际上无论如何都会运行。

enter image description here

知道我怎么能让它停止显示错误或让它识别我修改过的内部类?

1 个答案:

答案 0 :(得分:1)

如果您不是JDK工程师,那么评论是正确的,您不应该修改JDK类。但是,我们假设您真的想要这样做。 以下应该有效:

  • 转到项目设置Modules
  • 点击左侧面板中的Dependencies
  • 在中间面板中选择您的模块(我假设名为 BotTutorial 的那个)
  • 转到右侧面板中的<Module source>标签
  • 使用拖放或底部的箭头按钮将<Module source>移到表格中的JDK上方。

这是对话框的样子。 1.7_15应位于表的顶部,位于CREATE FUNCTION dbo.fnSplit ( @s VARCHAR(8000) ) RETURNS @ret TABLE (val NVARCHAR(4000)) AS BEGIN ;WITH Pieces(start, [stop]) AS ( SELECT 1, CHARINDEX(',', @s) UNION ALL SELECT [stop] + 1, CHARINDEX(',', @s, [stop] + 1) FROM Pieces WHERE [stop] > 0 ) INSERT INTO @ret (val) SELECT SUBSTRING(@s, start, CASE WHEN stop > 0 THEN stop-start ELSE 8000 END) AS s FROM Pieces OPTION(MAXRECURSION 0) RETURN END GO JDK之上。 Project Structure Module Dependencies