我正在寻找一个精确容量为0到2 ^ 64的数据类型 - 1.我们知道Java不支持'unsigned'禁止char数据类型.
BigInteger类允许创建长数据类型不支持的更大数字.但我不确定BigInteger课程将如何满足我的目的.BigInteger类只允许通过构造函数进行赋值.我看到以下可能性,但它会生成一个随机数.
BigInteger(int numBits, Random rnd)
Constructs a randomly generated BigInteger, uniformly distributed over the range 0 to (2^numBits - 1), inclusive.
Run Code Online (Sandbox Code Playgroud)
我看不到任何setValue(x)类型的API,它允许我为这个BigInteger选择我自己的值.如何使用BigInteger类实现这个或者还有其他方法吗?请发布代码示例.
PS:这里有人发布的问题没有实施细节.
如果我做0 =="0"则评估为真.尝试,
if( -777 == "-777" ) alert("same");
Run Code Online (Sandbox Code Playgroud)
警报发生.
并且,值得注意的是,true =="true"不会评估为true.尝试,
if( false == "false" ) alert("same");
Run Code Online (Sandbox Code Playgroud)
警报不会发生.
为什么会这样?
在Javascript中,我们不必var
在使用它之前使用关键字声明变量.我们可以马上做的事情一样myCount = 12;
或myStr = "Hello";
(其中mycount的,myStr的不是之前声明).任何此类用法,都声明并初始化"全局"范围内的变量.
提供此功能的原因是什么?它是一个很好的标准吗?
更新:我的问题不是'使用变量而不声明'和'声明然后使用'以及它如何影响范围之间的差异.
我的问题是'为什么允许在javascript中直接使用变量而不声明它',因为大多数编程语言都对此进行严格检查.
更新:我看到以下引用文本是此功能的不良影响.那么,为什么要有这个功能呢?
"假设有一个全局声明的变量x
(var x="comparison string"
)我已经不知道了,我打算在我的一个函数中创建我自己的全局'x'初始化一个(x=-1
),最后我打破其他功能.
那么,有什么好的理由吗?有这个功能?
我所要做的就是将我的项目的Java编译器设置为5.0.默认为1.4.当我按下OK按钮尝试保存时,出现以下错误.
首选项保存失败:
原因:异常在保存项目首选项时出现:/com.myproj.reqmanager.ui/.settings/org.eclipse.jdt.ui.prefs.
我之前从未遇到过这个错误.我的意思是我之前导入了这个项目并保存了偏好设置而没有任何问题.无处不在,我现在遇到这个问题.
我们正在使用其他人提供的图书馆.最近由于该库的变化,我们的项目有500个错误.迁移到新库时,我们发现只有15个API失败,500个错误重复(这15个错误的倍数出现,因为同一次调用被多次使用).
因此,对于迁移,我建议创建另一个内部静态包装类,它包装那些库API调用.因为如果要再次更改库,我们将需要更少的代码来进行更改,因此将来代码变得更容易维护.而且通过包装调用,我们可以避免人为错误(或非预期的(重载的)API使用).
但是这里的一些人,没有看到另一个包装类的重点,他们认为这是完全没必要的.他们争论的唯一的一点是,由于大多数API的变化只是一个衬里,我们可以使用CTRL + H(查找和替换)经常改变它们.而且他们也说,我建议这种额外的抽象,带走了可读性(因为它背后隐藏的另一种方法的名称(即使有意义的)实际API调用)的编码器/读写器.
什么是最好的方法?我的建议错了吗?
例如,在javascript中
我可以说
var x = 5;
Run Code Online (Sandbox Code Playgroud)
后来我能做到
x = 'a';
Run Code Online (Sandbox Code Playgroud)
然后
x = "hello";
Run Code Online (Sandbox Code Playgroud)
那么,如何为变量分配内存?实际上,所有变量都有一个共同类型'var',变量值可以在运行时改变,如上所示.为这些变量分配和管理内存不是一项艰巨的任务吗?确切地说,它是如何完成的?
我有一个不运行的RCP产品.然后我新安装了Eclipse,当我打开Eclipse.exe时它没有打开Eclipse IDE.我收到错误:NoClassDefFoundError:com/mercury/javashared/agentloader/AgentBootstrap(请参阅下面的完整描述).
系统安装了最新的jdk,jre.这个错误的原因是什么?(PS:当在另一台机器上解压缩时,同样的eclipse可以正常工作).我可以在那里运行eclipse和我的eclipse rcp产品)
!ENTRY org.eclipse.osgi 4 0 2009-06-25 10:40:19.468
!MESSAGE Application error
!STACK 1
java.lang.NoClassDefFoundError: com/mercury/javashared/agentloader/AgentBootstrap
at org.eclipse.swt.widgets.Display.<init>(Display.java:393)
at org.eclipse.ui.internal.Workbench.createDisplay(Workbench.java:448)
at org.eclipse.ui.PlatformUI.createDisplay(PlatformUI.java:161)
at org.eclipse.ui.internal.ide.IDEApplication.createDisplay(IDEApplication.java:122)
at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:75)
at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:78)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336)
at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
at org.eclipse.core.launcher.Main.run(Main.java:977)
at org.eclipse.core.launcher.Main.main(Main.java:952)
Caused by: java.lang.ClassNotFoundException: com.mercury.javashared.agentloader.AgentBootstrap
at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:402)
at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:347)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:83)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
... 17 more
Run Code Online (Sandbox Code Playgroud)
更新: 我在机器上安装了QTP(Quick Test Pro).当我卸载QTP时,我能够同时使用RCP产品和Eclipse.exe. …
假设我有一个方法,可以通过两个或多个线程访问,我想让它保证线程安全.
public int getVal(int x, int y, MyClass myObj)
{
int z;
z = getInt(myObj);
return x + y + z;
}
Run Code Online (Sandbox Code Playgroud)
在这里,我认为我们不必同步x + y,因为它们是原始的.
让我们假设getInt(myObj)
修改myObj的状态并影响z的值.
因此,我将不得不为该行提供同步,z = getInt(myObj);
但仅当两个线程都在'myObj'引用中传递相同的实例时.作为API的编码器,我不知道两个线程是否都会为'myObj'传递相同的实例.在某些情况下,这些线程可能会在"myObj"引用中传递相同的MyClass实例,而在其他情况下,它们可能会在"myObj"引用中传递不同的MyClass实例.
那么,如何确保线路的线程安全z = getInt(myObj)
?(当然,我们不希望在传递的实例不同时进行同步,并且只有在传递的实例相同时才需要同步.我很清楚这是无法确定的).
假设MyClass不能成为不可变的,我认为以下可能是一个解决方案.
synchronized(myObj)
{
z = getInt(myObj);
}
Run Code Online (Sandbox Code Playgroud)
这是正确的解决方案吗?并且,我们可以通过其他方式确保线程安全
z = getInt(myObj); (but only in case of different instances)?
Run Code Online (Sandbox Code Playgroud) 我习惯于结构编程(例如:C),OO编程(例如:Java),脚本(例如:Javascript),Web(例如:HTML,JSP,Servlets,CSS)等.
现在,当我开始使用Eclipse RCP插件开发时,整个过程在编程方面给我一种奇怪的感觉.Eclipse RCP开发中的方式与我上面提到的其他语言完全不同,老实说,我并不喜欢这个事实.
我是唯一一个有这种感觉的人吗?
您建议我更好地过渡到Eclipse RCP生活中还有哪些其他内容?(如果它感觉更好).
PS:我已经看过这个帖子,对于教程,只是想知道别人的感受,如果他们的开发背景与我相似!
我的应用程序有5个插件.每个插件都有自己的透视图,因此每个透视扩展定义都在单个插件的plugin.xml下.
现在,我想控制这些透视图在我的应用程序中出现的顺序.怎么做?
有一个主插件包含"ApplicationWorkBenchAdvisor.java".这有initialize()方法,我在其中使用透视注册表进行迭代
PlatformUI.getWorkbench().getPerspectiveRegistry().getPerspectives();
Run Code Online (Sandbox Code Playgroud)
然后以逗号分隔的方式将透视ID附加到String变量(pbar),稍后将使用此变量.
PlatformUI.getPreferenceStore().setDefault(IWorkbenchPreferenceConstants.PERSPECTIVE_BAR_EXTRAS, pbar);
PlatformUI.getPreferenceStore().setValue(IWorkbenchPreferenceConstants.PERSPECTIVE_BAR_EXTRAS, pbar);
Run Code Online (Sandbox Code Playgroud)
当迭代透视注册表时,我可以比较透视ID并对其进行排序(当通过比较id添加到'pbar'时)我希望它出现的方式,但是,我不想在这里进行此排序,因为它看起来像一个脏的方式.
还有其他地方我们可以解决透视出现的顺序吗?(每个透视图都位于不同的插件中).
1)我们还可以控制透视切换器中的排序吗?
2)是否有办法控制进入透视注册表以造成所需的订单.如果没有,我们可以写回透视注册表吗?
我试图使用TextureBrush在尺寸宽度= 1000,高度= 16的矩形区域上平铺图像(16x16)以获得像UI一样的条带.
Rectangle myIconDrawingRectangle = new Rectangle(x, y, 1000, 16);
using (TextureBrush brush = new TextureBrush(myIcon, WrapMode.Tile))
{
e.Graphics.FillRectangle(brush, myIconDrawingRectangle );
}
Run Code Online (Sandbox Code Playgroud)
当我用x = 0绘制时,y = 0平铺从(0,0)开始按预期发生.
当我用x = 0绘制时,y = 50平铺从(0,50)开始,但绘制矩形不是从图像的开头开始.它从图像的裁剪部分开始,然后重复.
怎么解决这个?
PS:我不想在DrawImage上重复手动循环.
考虑以下代码.
<html>
<body>
<script>
var x = 5; //globally declared
function showX()
{
alert("x="+x); //trying to display global value
var x=10; //trying to create and initialize a local x
}
</script>
<input type = "button" value="Show X" onclick="showX()">
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
警告语句显示'x = undefined'.并且不会按预期打印x的全局值.一个等效的java代码将显示5!那么,这是一个错误吗?如果没有,那么如何解释这种行为?
我在点击treenode的视图中打开一个编辑器.现在,当向用户显示编辑器加载和控件时,我想根据编辑器上的某些值向用户显示警告消息对话框.
我尝试将警告对话框放在编辑器的createPartControl方法的末尾.根据所需功能双击preenode时出现对话框.但问题是,当对话框出现时,编辑器上的控件仍然不可见.只有当我关闭对话框时才会显示编辑器控件.
我希望它以相反的方式发生.即编辑器控件首先显示,然后出现警告对话框.我应该做些什么改变才能达到这个效果?
javascript ×4
variables ×4
eclipse ×3
eclipse-rcp ×3
java ×2
c# ×1
comparison ×1
ide ×1
image ×1
oop ×1
scripting ×1
settings ×1
tiling ×1
types ×1