小编hot*_*oup的帖子

在Akka Scala中访问消息对象实例

在Akka的Scala API中,如何访问已发送给角色的消息对象?也许这个对象比一些琐碎的字符串要复杂得多,也许它包含我要检查和使用的属性:

case class HotSauce(amount : Double, capcaisin : Double)

class SpicyMeatball extends Actor {
  override def receive: Receive = {
    case HotSauce =>
      // How do I get access to the HotSauce message instance?
      val capcaisin = ???.getCapcaisin()
  }
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

scala akka

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

Gradle Jacoco插件未生成报告

Java 8和Gradle 4.6在这里。我正在尝试将我的Gradle构建配置为使用Jacoco插件,但遇到了一些困难。我已经将其与Checkstyle和Findbugs配合使用,因此运行会./gradlew clean build调用Checkstyle和Findbugs任务,因为它们是check任务的依赖项。

我现在正在尝试让Jacoco进行以下工作:

  1. 它不包括我的com.me.myapp.domain.model包裹及其所有内容;和
  2. 如果未排除类的代码覆盖率低于70%,则构建失败。和
  3. 通过或失败,我想在该build/目录下生成HTML版本的Jacoco报告;和
  4. 理想情况下,我可以使用相同的Gradle命令调用./gradlew clean build来使Jacoco像这样工作

迄今为止我最大的尝试:

plugins {
    id 'java-library'
    id 'checkstyle'
    id 'findbugs'
    id 'jacoco'
}

dependencies {
    compile(
        'org.hibernate:hibernate-core:5.0.12.Final'
        ,'com.fasterxml.jackson.core:jackson-core:2.8.10'
        ,'com.fasterxml.jackson.core:jackson-databind:2.8.10'
        ,'com.fasterxml.jackson.core:jackson-annotations:2.8.0'
    )

    testCompile(
        'junit:junit:4.12'
    )
}

repositories {
    jcenter()
    mavenCentral()
}

checkstyle {
    config = rootProject.resources.text.fromFile('buildConfig/checkstyle/checkstyle.xml')
    toolVersion = '8.11'
}

tasks.withType(FindBugs) {
    reports {
        xml.enabled false
        html.enabled true
    }
}

findbugs {
    excludeFilter = file('buildConfig/findbugs/findbugs-exclude.xml')
}

jacocoTestReport …
Run Code Online (Sandbox Code Playgroud)

java gradle jacoco

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

AWS S3 Java SDK未将文件复制到文件夹

Java 8在这里。我有一个myapp-bucket具有以下文件夹子结构的S3存储桶():

/artwork
    /upload
    /staging
Run Code Online (Sandbox Code Playgroud)

下面是什么myapp-bucket/artwork文件夹的样子:

在此处输入图片说明

我有将图像文件上传到/upload文件夹的软件,然后正在编写的另一个应用程序可以处理该图像并将其复制到/staging文件夹中。我必须执行此S3复制的代码如下:

CopyObjectRequest copyObjectRequest = new CopyObjectRequest(
  bucketName,
  objectKey,
  destinationBucket,
  destinationKey
);

log.info(
  "copying object from s3://{}/{} to s3://{}/{}",
  bucketName,
  objectKey,
  destinationBucket,
  destinationKey
);

// Constructed via 
AmazonS3 amazonS3 = AmazonS3ClientBuilder.standard().withRegion(Regions.US_EAST_1).build();
amazonS3.copyObject(copyObjectRequest);
Run Code Online (Sandbox Code Playgroud)

运行此命令时,我看到以下日志输出:

[main] DEBUG com.me.myapp.ImageProcessor - copying object from s3://myapp-bucket/artwork/upload/rlj_amp244001_270.jpeg to s3://myapp-bucket/artwork/staging
Run Code Online (Sandbox Code Playgroud)

但是myapp-bucket/artwork文件夹的最终状态如下所示:

在此处输入图片说明

因此,看起来它不是复制myapp-bucket/artwork/upload/<theImageFile>myapp-bucket/artwork/staging/目录中,而是直接在其下创建一个新文件/artwork并为其命名staging,并且可能将映像的二进制内容复制到该登台文件中。我要去哪里了?!我只想结束myapp-bucket/artwork/staging/<theImageFile>-预先感谢!

java amazon-s3 amazon-web-services

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

从Swing应用程序的EDT事件处理程序代码内部启动线程

我对Swing Event Dispatcher Thread(EDT)的理解是,它是执行事件处理代码的专用线程。因此,如果我的理解是正确的,那么在下面的示例中:

private class ButtonClickListener implements ActionListener{
   public void actionPerformed(ActionEvent e) {
      // START EDT
      String command = e.getActionCommand();  

      if( command.equals( "OK" ))  {
         statusLabel.setText("Ok Button clicked.");
      } else if( command.equals( "Submit" ) )  {
         statusLabel.setText("Submit Button clicked.");
      } else {
         statusLabel.setText("Cancel Button clicked.");
      }     
      // END EDT
   }        
}
Run Code Online (Sandbox Code Playgroud)

在之间的所有代码START EDT,并END EDT在在美国东部时间执行,并且它的任何代码以外的主应用程序线程上执行。同样,另一个示例:

// OUTSIDE EDT
JFrame mainFrame = new JFrame("Java SWING Examples");
mainFrame.setSize(400,400);
mainFrame.setLayout(new GridLayout(3, 1));
mainFrame.addWindowListener(new WindowAdapter() {
   public void windowClosing(WindowEvent …
Run Code Online (Sandbox Code Playgroud)

java swing multithreading event-dispatch-thread java-8

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

POI中的Java Excel / POJO映射

这里的Java 8使用Apache POI 4.1将Excel(XLSX)文件加载到内存中,并将Java bean / POJO的列表写回到新的Excel文件中。

对我来说,一个Excel文件(至少是我正在使用的文件)实际上是POJO的列表,每一行都是POJO的不同实例,每一列都是该实例的不同字段值。观察:

在此处输入图片说明

在这里,我可能有一个名为POJO的POJO Car,而上面的示例电子表格是List<Car>

@Getter
@Setter
public class Car {

  private String manufacturer;
  private String model;
  private String color;
  private String year;
  private BigDecimal price;

}
Run Code Online (Sandbox Code Playgroud)

因此,我有正常运行的代码,可以将Excel文件(“ new-cars.xlsx”)读入List<Car>,处理该列表,然后将处理后的列表写回到输出文件,例如“ processed-cars.xlsx”:

// 1. Load excel file into a List<Car>
InputStream inp = new FileInputStream("new-cars.xlsx");
Workbook workbook = WorkbookFactory.create(inp);
Iterator<Row> iterator = workbook.getSheetAt(0).iterator();

List<Car> carsInventory = new ArrayList<>();
while (iterator.hasNext()) {

    Car car = new Car();

    Row currentRow …
Run Code Online (Sandbox Code Playgroud)

java excel xlsx apache-poi

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

Spark withColumn用于修改列但不添加新列

Scala 2.12和Spark 2.2.1在这里.我有以下代码:

myDf.show(5)
myDf.withColumn("rank", myDf("rank") * 10)
myDf.withColumn("lastRanOn", current_date())
println("And now:")
myDf.show(5)
Run Code Online (Sandbox Code Playgroud)

当我运行它时,在日志中我看到:

+---------+-----------+----+
|fizz|buzz|rizzrankrid|rank|
+---------+-----------+----+
|   2|   5| 1440370637| 128|
|   2|   5| 2114144780|1352|
|   2|   8|  199559784|3233|
|   2|   5| 1522258372| 895|
|   2|   9|  918480276| 882|
+---------+-----------+----+
And now:
+---------+-----------+-----+
|fizz|buzz|rizzrankrid| rank|
+---------+-----------+-----+
|   2|   5| 1440370637| 1280|
|   2|   5| 2114144780|13520|
|   2|   8|  199559784|32330|
|   2|   5| 1522258372| 8950|
|   2|   9|  918480276| 8820|
+---------+-----------+-----+
Run Code Online (Sandbox Code Playgroud)

非常有趣:

  • 第一个withColumn工作,rank通过将自己乘以10来转换每一行的值
  • 但是第二个withColumn失败,只是将当前日期/时间作为新 …

scala dataframe apache-spark

0
推荐指数
1
解决办法
2012
查看次数

时间戳间隔上的Postgres语法错误

Postgres在这里;我有一个Users包含以下字段的表:

create table Users ( 
    id bigserial primary key, 
    isAdmin boolean not null default false, 
    beginDate timestamp with time zone not null, 
    updated timestamp with time zone
);
Run Code Online (Sandbox Code Playgroud)

我想写一个查询来获取所有Users记录:

  • beginDate过去24小时(包括性)内的值;
  • 有一个updated是值较旧的(唯一的)超过24小时

到目前为止,我最好的尝试是:

select *
from
Users
where
beginDate >= NOW() - INTERVAL 1 DAY and
updated < NOW() - INTERVAL 1 DAY
Run Code Online (Sandbox Code Playgroud)

但这给了em以下错误:

ERROR: syntax error at or near "1"
  Position: 59

beginDate >= NOW() - INTERVAL 1 DAY …
Run Code Online (Sandbox Code Playgroud)

sql postgresql timestamp

0
推荐指数
1
解决办法
162
查看次数