我刚刚学习了Java的Scanner类,现在我想知道它如何与StringTokenizer和String.Split进行比较/竞争.我知道StringTokenizer和String.Split只适用于字符串,那么为什么我要将扫描器用于字符串呢?Scanner只是打算一站式购物吗?
我很难理解UML中组合和聚合之间的区别.有人可以给我一个很好的比较和对比吗?我也很想学会在代码中识别它们之间的区别和/或看一个简短的软件/代码示例.
编辑:我问的部分原因是因为我们正在进行的反向文档活动.我们编写了代码,但是我们需要返回并为代码创建类图.我们只是想正确地捕捉这些关联.
在Java中,Enum可以完成Enums所做的伟大事情,但也可以拥有方法(行为和逻辑).与使用枚举的类相比,它有什么优势?举例说明这一点也很受欢迎.
前几天我注意到我可以调用boolean.class,但不能调用integer.class(或其他基元).是什么让布尔如此特别?
注意:我说的是boolean.class,而不是Boolean.class(这很有意义).
Duh:我尝试过integer.class,而不是int.class.我不觉得愚蠢:
我曾与某人就战略模式的真正斗争而斗争,我需要专家来解决这个问题.
我们都同意策略模式允许在运行时交换类的内容(例如,行为),同时保持相同的接口.然而,她的论点是"为了[算法]成为一种策略,你必须得到相同的结果".我的论点是,交换"算法"或类的逻辑可能意味着被覆盖的操作的结果是不同的,但它仍然符合策略模式的目的,意图(和分类).
她的代码示例带有注释:
根据您的定义,类的任何子类都是策略.它们具有相同的方法定义(签名),因此可以互换.
Interface Strategy
{
DoArithmatic(int[] a)
}
Class A : Strategy
public int DoArithmatic(int[]a)
{
int temp = 0;
for(int i =0; i< a.length; i++)
temp += a[i]
}
Class B : Strategy
public int DoArithmaticB(int[]a)
{
int temp = 0;
for(int i =a.length -1; i>-1; i--)
temp += a[i]
}
Class C : Strategy
public int DoArithmatic(int[]a)
{
int temp = 0;
for(int i =0; i< a.length; i++)
temp -= a;
}
int[] a = { …Run Code Online (Sandbox Code Playgroud) 我希望能帮助解决这个奇怪的问题.我们正在运行Jacorb名称服务器,我有一个简单的客户端,我正在尝试连接并做了很棒的CORBA伏都教.名称服务器正在运行,但是当我尝试启动我的Java应用程序时,我得到了一个"Connection failure" error (org.omg.CORBA.COMM_FAILURE, minor code 201, "caused by java.net.ConnectionException: Connection refused: connect").
这是奇怪的部分.该错误报告它正在尝试使用默认端口900进行连接,但我传入一个参数以尝试覆盖名称服务的端口号以匹配名称服务器使用的端口号.我的java命令是这样的:
java -classpath . HelloClient -Djava.endorsed.dirs="bla bla bla" <br>
-Dorg.omg.CORBA.ORBClass=org.jacorb.orb.ORB
-Dorg.omg.CORBA.ORBSingletonClass=org.jacorb.orb.ORBSingleton
-DORBInitRef.NameService=corbaloc::localhost:2809/StandardNS/NameServer-POA/_root
Run Code Online (Sandbox Code Playgroud)
我也尝试了没有第一个大写字母D的参数(我已经看到了两种方式,我不知道其中的区别).
现在,如果我输入-ORBInitialPort 2809,那么客户端似乎尝试连接,但后来我收到corba.OBJECT_NOT_EXIST错误.
我可以使用任何人的帮助或建议.
我正在与Java的Runtime exec方法中的space bug进行斗争.这是这个问题的独特之处:我试图执行的命令是一个传入的字符串,可能有也可能没有空格,不一定是任何特定的格式.无论哪种方式,我都需要执行它.如果没有空格,我很好; 如果有空格,我就不太好了.
我如何解释这两种情况?
奖金信息免费:其中一个重大问题似乎是我试图在c:\ program files\blablabla中调用可执行文件......并且exec似乎在'c:\ program'之后拆分空格.我也相信其他问题也会出现在参数中.
这是我可能得到的各种字符串的更具体的例子.这应该清除一些混乱:
第一个工作正常,因为它没有空格.第二个甚至可以,因为它在空间上分裂并使用第一个作为命令,第二个作为参数.第三个和第四个例子在第一个空格上分开,使用'C:\ program'和命令,'files ...'和(在第四个字符串的情况下)'-someParam = bar'作为参数.
我正在尝试使用Libgdx创建一个非常简单的绘画应用程序.我一直在寻找intertubes几天试图解决这个问题,这可能是由于我的openGL noobness.
当我在屏幕上绘制一个对象时,只要render()方法正在运行,我绘制的东西就会很快闪烁(我假设每次调用render()方法时都会闪烁).如果我禁用连续渲染,则闪烁将停止,直到我绘制其他内容(同样,未调用render()).
假设我正在将一个新的Texture加载到Sprite中 - 它确实绘制了所有 - 而且我在render()方法中所做的就是这样:
batch.begin();
myShape.setPosition(Gdx.input.getX(), Gdx.input.getY());
batch.setColor(Color.BLUE);
myShape.draw(batch);
batch.end();
Run Code Online (Sandbox Code Playgroud)
我不是在调用glClear,因为我不想(我想)每次渲染都要清除屏幕.我盲目地尝试了各种glEnable和glDisable用于剔除,混合,dithernig等,但没有任何帮助这个问题.
世界上我做错了什么,或者只是不理解这里?我没有设置好吗?
所以,情况就是这样.我们希望能够查询活动目录以获取用户的角色/组成员身份等.现在,我已经可以使用标准Java API(javax.naming)来做到这一点,但我需要一个用户名,域服务器名称/地址,和密码来做到这一点.用户也拥有有限的权限,因此我不能使用任何外部调用来使用花哨的管理工具.
在Java中,有没有办法只使用用户名和域服务器名称/地址来获取该信息?我也对第三方软件包持开放态度.或者,您可以向我提供(或指向)有关在AD中配置的内容的信息以允许此操作.
希望这是有道理的.我不是AD大师,所以信息越多越好.