小编use*_*344的帖子

Java具有特定精度的双精度字符串

我想转换doubleString.我希望它尽可能少,最多6位.

所以我找到String.format("%.6f", d)了将我100.0变成的东西100.000000.最大精度可以正常工作,但我希望将其转换为100(最小精度).你知道哪种方法是这样的吗?

java string format double

14
推荐指数
2
解决办法
2万
查看次数

更改JIT编译的最终值

我注意到一个非常奇怪的事情,通过Reflection更改最终字段后,返回该字段的方法始终给出旧值.我想这可能是因为JIT编译器.

这是示例程序:

public class Main
{
private static final Main m = new Main();
public static Main getM()
{
    return m;
}

public static void main(String args[]) throws Exception
{
    Main m = getM();
    int x = 0;
    for(int i = 0;i<10000000;i++)
    {
        if(getM().equals(m))
            x ++;
    }
    Field f = Main.class.getDeclaredField("m");
    f.setAccessible(true);
    removeFinal(f);
    Main main1 = new Main();
    f.set(null, main1);
    Main main2 = (Main) f.get(null);
    Main main3 = getM();
    System.out.println(main1.toString());
    System.out.println(main2.toString());
    System.out.println(main3.toString());
}

private static void removeFinal(Field field) throws NoSuchFieldException, …
Run Code Online (Sandbox Code Playgroud)

java reflection

10
推荐指数
1
解决办法
361
查看次数

将现有文件解析为MPS语言

我想移动到Jetbrains MPS,所以我可以更容易地使用自定义语言编辑我的文件.

我刚刚开始创建文件,并且已经有很多文件.有没有办法在MPS中自动将这些文件转换为我的语言,而不仅仅是复制粘贴的代码部分?

mps

6
推荐指数
1
解决办法
404
查看次数

android.app.Activity.java中的错误

在设置Android Studio之后,我试图找出有多少方法可以工作,但我可以看到Activity类有很多错误.

例如:

// Gives: cannot resolve symbol 'CallSuper'
android.annotation.CallSuper();  

// Gives: cannot resolve method 'trackActivity(android.app.Activity)'
private final Object mInstanceTracker = StrictMode.trackActivity(this); 

// Gives: cannot resolve symbol 'MainThread'
@MainThread

// **312 errors in android.app.Activity, 579 in android.view.View**
Run Code Online (Sandbox Code Playgroud)

我的应用程序运行正常.如何使这些错误消失,并能够看到现在无法解决的结构文档?

我的Android Studio 2.1.3配置的详细信息
安装在独立SDK管理器中:

  • Android SDK工具
  • Android SDK平台工具
  • Android SDK Build-tools
  • 适用于API 24的SDK平台和源代码
  • SDK平台,文档,Google API和API 23的源代码
  • 附加功能:Android支持存储库,Google存储库和Google USB驱动程序

java android android-studio

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

映射getOrDefault VS getOrUseSupplier

我开始学习lambda,并且我不明白为什么Java Map具有:

getOrDefault(Object key, V defaultValue)
Run Code Online (Sandbox Code Playgroud)

而不是(工作原理相同,但是如果缺少值,则将从供应商处获取defaultValue):

getOrUseSupplier(Object key, Supplier<V> defaultValue)
Run Code Online (Sandbox Code Playgroud)

我目前看到的当前解决方案的冒险:

  • defaultValue不必是最终/有效的最终值
  • 看起来更简单,无需了解lambda语法

缺点:

  • 如果在使用getOrDefault时放置了新对象,则将创建该对象并将其立即传递给GC(在使用Supplier时,将完全不会创建)。

我想知道是否还有使用getOrDefault而不是getOrUseSupplier的缺点。您还能告诉我Java库中是否有这样的方法:

static <V> V getOrUseSupplier(Map<?, V> map, Object key, Supplier<V> supplier)
Run Code Online (Sandbox Code Playgroud)

试图从地图上获取价值,如果不存在,则从供应商那里获取价值。

java lambda functional-programming

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

故意失去精度

将double转换为int时:

double d = 5.5;
int i = (int) d;
Run Code Online (Sandbox Code Playgroud)

变量“ i”变成5。这正是我想要的,问题是我得到警告:从“ double”转换为“ int”可能会导致精度损失。我的问题是,有什么办法可以告诉IDE这样的吗?预计会损失精度,因此我不会收到警告?那么还有其他方法可以失去精度并转换为整数吗?

我知道我可以完全禁用所有丢失精度警告,但是那不是很好。我正在使用Intellij IDEA 13

java ide double int casting

3
推荐指数
1
解决办法
135
查看次数

Java而不是XText项目中的XTend

根据关于XText和XTend的书:"你仍然可以通过自定义MWE2工作流来生成Java存根类".

我在MWE2文件中做了哪些更改才能实现此目的?

目前GenerateMyDsl.mwe2看起来像这样:http://pastebin.com/3jp4B1X7

谢谢!

java xtext

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