小编I S*_*son的帖子

如何使用gradle编译单个java文件?

(更新:感谢Peter N的评论.)

我有一个包含多个类的java包,因此包含文件.但是我最初只想编译其中一个文件,以便我可以使用它来更新包中的其他类.它是其他类的工厂,因此依赖于它们 - 即.它引用了它们.

我一直在尝试使用JavaCompile gradle任务来执行此操作.因此,我已经阅读了JavaCompile的文档,并试图搜索示例,但似乎没有什么.我甚至在gradle论坛发帖,但到目前为止进展缓慢.

我可以使用ant javac任务使用ant脚本轻松完成所需的操作.但是我想在gradle中完成它(并且不使用ant.javac方法 - 如果我必须这样做,我将只使用ant).

我创建了一个示例案例,在一个包中只有两个类的两个源文件.

这两个文件都在一个名为some.pkg的包中,因此我们有以下目录结构:

  • \的build.gradle
  • \ SRC \主\ java的\一些\ PKG\ClassOne.java
  • \ SRC \主\ java的\一些\ PKG\ClassTwo.java

ClassOne:

package some.pkg;

import some.pkg.*;

public class ClassOne {
    public void doStuff() {
    }
}
Run Code Online (Sandbox Code Playgroud)

ClassTwo:

package some.pkg;

import some.pkg.*;

public class ClassTwo {
    public void ClassTwo() {
        ClassOne cone = new ClassOne();
        cone.doStuff();
    }
}
Run Code Online (Sandbox Code Playgroud)

如您所见,ClassTwo(我们想要独立编译的类)取决于ClassOne.

ant脚本是一个简单的例子:

<project>
    <property name="build.dir"     value="build"/>
    <property name="lib.dir"     value="lib"/>
    <property name="src.dir"     value="src/main/java"/> …
Run Code Online (Sandbox Code Playgroud)

java gradle

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

NSJSONSerialization用小十进制数字

我试图将的Double值包含0.81在由生成的JSON中NSJSONSerialization。代码如下:

let jsonInput = [ "value": 0.81 ]
let data = try NSJSONSerialization.dataWithJSONObject(jsonInput, options: NSJSONWritingOptions.PrettyPrinted)
let json = NSString(data: data, encoding: NSUTF8StringEncoding)!
print( json )
Run Code Online (Sandbox Code Playgroud)

输出为:

{
  "value" : 0.8100000000000001
}
Run Code Online (Sandbox Code Playgroud)

但是我想看到的是:

{
  "value" : 0.81
}
Run Code Online (Sandbox Code Playgroud)

NSJSONSerialization该怎么做?

让我感到困惑的另一件事是Swift对64bit的处理Double。在操场上,我也可以这样做:

let eightOne:Double = 0.81
"\(eightOne)"
print( eightOne )
Run Code Online (Sandbox Code Playgroud)

然后根据需要输出:

0.81
Run Code Online (Sandbox Code Playgroud)

即使在操场上它显示eightOne0.8100000000000001尽可能内部表示去。但是,在此将其转换为字符串时,会斩掉其余部分。

我肯定可以解决此问题,因为您需要将其分类以进行任何类型的财务处理(例如,在Java中,我们知道仅BigDecimals在涉及财务价值时才使用)。

请帮忙。:)

注意:这里的重点是序列化到JSON。不只是简单地取消NSString( format: "%\(0.2)f", 0.81)

json swift

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

标签 统计

gradle ×1

java ×1

json ×1

swift ×1