使用单个语句更方便,更清晰
import java.awt.*;
Run Code Online (Sandbox Code Playgroud)
而不是导入一堆个别类
import java.awt.Panel;
import java.awt.Graphics;
import java.awt.Canvas;
...
Run Code Online (Sandbox Code Playgroud)
在import声明中使用通配符有什么问题?
我可以通过多种方式在Python中导入模块而感到困惑.
import X
import X as Y
from A import B
Run Code Online (Sandbox Code Playgroud)
我一直在阅读有关作用域和名称空间的内容,但我想就什么是最佳策略,在哪种情况下以及为什么,提供一些实用的建议.是否应该在模块级别或方法/功能级别进行导入?在__init__.py模块代码本身中?
我的问题并没有真正回答" Python包 - 按类导入,而不是文件 ",尽管它显然是相关的.
您会建议使用什么工具来检测Java包循环依赖关系,知道目标是明确列出检测到的"跨包循环"中涉及的特定类?
我知道classycle和JDepend,但它们都没有列出循环包依赖中涉及的类.度量标准有一个有趣的循环图形表示,但它再次限于包,并且很难在某些时候阅读.
我厌倦了得到一个:
"你在这3个软件包之间有一个软件包循环依赖关系,
你们每个 好运中都有xxx类
找到合适的类并打破这个循环"
你知道任何工具需要额外的步骤来实际解释为什么检测到循环(即'列出所涉及的类')?
Riiight ...时间宣布结果:
@ l7010.de:谢谢你的努力.我会投票给你(当我有足够的代表时),特别是对于'CAP'答案......但是CAP已经死了,不再与我的Eclipse 3.4兼容了.其余的是商业广告,我只看免费软件.
@ daniel6651:谢谢你,但正如所说,只是免费软件(对不起,首先没有提到它).
@izb作为findbugs的常用用户(现在使用最新的1.3.5),我只需点击一下即可接受你的答案......如果你能向我解释一下有什么选项可以激活findbug以检测任何周期.该功能仅在0.8.7版本中提及(查找' 新样式检测器以查找类之间的循环依赖关系 '),我无法测试它.更新:它现在有效,我有一个旧的findbugs配置文件,其中没有激活该选项.我仍然喜欢CAD ;)
答案是......看下面我自己的(第二个)答案
任何人都可以清楚地向我解释当我们在Java文件中使用import语句时到底发生了什么?如果我们添加越来越多的java类,它会增加文件的大小吗?为什么我们不使用类加载器呢?导入的限制是什么?
为什么Eclipse在导入类型时会采用细粒度的方法?在C#中,我习惯于使用"使用System.Windows.Controls"并完成它,但Eclipse更喜欢导入我单独引用的每个小部件(使用Ctrl + Shift + O快捷方式).如果我知道我需要多个类型,导入整个命名空间是否有任何损害?
我只想输出电流而且我写了
import java.util.*;
Run Code Online (Sandbox Code Playgroud)
在开始时,和
System.out.println(new Date());
Run Code Online (Sandbox Code Playgroud)
在主要部分.
但我得到的是这样的:
Date@124bbbf
Run Code Online (Sandbox Code Playgroud)
当我将导入更改为import java.util.Date;代码完美时,为什么?
====================================
问题是,好吧,我的源文件是"Date.java",这就是原因.
嗯,这完全是我的错,我让所有人感到困惑; P
谢谢以下所有人.这真的很好你;)
我可不可以做:
import java.awt.*
Run Code Online (Sandbox Code Playgroud)
代替:
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
Run Code Online (Sandbox Code Playgroud)
如果两种方式都正确哪一个更好?
好的,如果我有一个项目使用:
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Color;
import java.awt.Polygon;
Run Code Online (Sandbox Code Playgroud)
它会使Class文件更小:
import java.awt.*
Run Code Online (Sandbox Code Playgroud)
我反对它,因为我输入了许多我不需要的东西.我正在考虑因为它使文件中的字符少得多.
是否直接加载所需的类是减少Java应用程序整体内存使用量的好方法?
例如:
import java.awt.Graphics;
Run Code Online (Sandbox Code Playgroud)
VS
import java.awt.*;
Run Code Online (Sandbox Code Playgroud) 虽然导入所有类或者使用特定的导入更好,但在java中导入包是否重要.例如,最好使用import java.util.*或导入我的程序使用的util包的特定类.
使用import android.view.*这样的语句是否有一些缺点,而不是仅仅从视图包中导入我实际使用的对象?如果我使用*,它会使我编译的Android应用程序更大吗?如果是,那么决定是用单个对象还是单个对象导入整个包的最佳做法是什么?谢谢