小编use*_*342的帖子

Lombok构建器检查非null而不是空

我有一个变量类,我不希望它为null或空.有没有办法使用Lombok构建器来设置属性?我可以使用,@NonNull但我无法验证它是否为空.显然,另一种选择是编写我自己的构建器来执行所有这些检查.例如:

class Person {
    @NonNull
    private String firstName;
    @NonNull
    private String lastName;

    public static class PersonBuilder() {
        // .
        // .
        // .
        public Person build() {
            //do checks for empty etc and return object
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

java builder lombok

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

在javascript中执行xnor

我在a&中存储了两个字符串b.如果两个字符串都有一些值,我想要进行一些验证.为此,我使用:

if(a && b) {
    //Do some processing.
}
Run Code Online (Sandbox Code Playgroud)

但是,如果其中一个是空的而另一个不是,那么我需要单独处理它.如果两者都是空的,我不需要做任何事情.所以基本上处理这种情况是XNOR的错误情况.我可以这样做:

if((a && !b) || (!a && b)) {
    //handle separately. 
}
Run Code Online (Sandbox Code Playgroud)

有比这更好的方法吗?

javascript

11
推荐指数
2
解决办法
202
查看次数

根据优先级从列表中过滤值

我有一个类型的有效值的列表:

Set<String> validTypes = ImmutableSet.of("TypeA", "TypeB", "TypeC");
Run Code Online (Sandbox Code Playgroud)

我想从给定的列表中提取具有有效类型的第一个值。在这种情况下,我会写这种东西:

public class A{
    private String type;
    private String member;
}

List<A> classAList;
classAList.stream()
    .filter(a -> validTypes.contains(a.getType()))
    .findFirst();
Run Code Online (Sandbox Code Playgroud)

但是我想优先考虑TypeA,例如,如果classAListTypeATypeB,我想要有的对象typeA。为此,我要做的是:

Set<String> preferredValidTypes = ImmutableSet.of("TypeA");
classAList.stream()
    .filter(a -> preferredValidTypes.contains(a.getType()))
    .findFirst()
    .orElseGet(() -> {
        return classAList.stream()
        .filter(a -> validTypes.contains(a.getType()))
        .findFirst();
    }
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法?

java java-8

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

从BroadcastReceiver类发送Intent到当前正在运行的活动

我有一个课程延伸BroadcastReceiver.在收到短信时,我想将信息传递给我的主要活动类,以便在一个方框中显示文本(如果已存在文本,则附加).

public class SmsReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent)
    {
        Intent i = new Intent(context, MainActivity.class);
            i.putExtra("updatedString","Hello");
            context.startActivity(i);
    }
}
Run Code Online (Sandbox Code Playgroud)

MainActivity.java

public class MainActivity extends Activity{

  private TextView results;
  @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Bundle extras = getIntent().getExtras();
        if(extras!=null){
            results = (TextView) findViewById(R.id.results);
            results.setVisibility(View.VISIBLE);
            results.append(extras.getString("updatedString"));
        }

}
Run Code Online (Sandbox Code Playgroud)

我只有一个活动类(MainActivity.java).但是,当我这样做时,我得到一个异常无法暂停活动.

android android-intent android-activity android-bundle

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

在javascript中将函数作为参数传递,未定义错误

我有一个函数,它是名为 的对象的一部分server,即 server.log 是我用来记录数据的函数。尽管我希望 server.log 可用于其他文件中的函数,但我不想将服务器的其他属性传递给其他函数。

function test() {
    testingThis(server.log);
}

function testingThis(logf) {
    logf("test123");
}
Run Code Online (Sandbox Code Playgroud)

我收到一条错误消息

无法读取未定义的属性“emit”

我正在使用 happy 控制台模块来记录(server.log 在测试功能中工作正常)。

javascript node.js

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

枯萎vs建设者龙目岛图书馆

我已经开始使用Lombok库,我无法弄清楚使用wither和构建器之间的区别.

@Builder
@Wither
public class Sample {
   private int x;
   private int y;
}
Run Code Online (Sandbox Code Playgroud)

现在我可以用两种方式创建一个对象:

Sample s = new Sample().builder()
              .x(10)
              .y(15)
              .build();
Run Code Online (Sandbox Code Playgroud)

要么

Sample s = new Sample()
           .withx(10)
           .withy(10);
Run Code Online (Sandbox Code Playgroud)

两者有什么区别?我应该使用哪一个?

java builder lombok

6
推荐指数
2
解决办法
4628
查看次数

更改SQS FIFO中的重复数据删除间隔

有没有办法增加contentBasedDeduplicationSQS FIFO队列中的间隔?在开发人员指南中,他们提到

如果成功发送了具有特定邮件重复数据删除ID的邮件,则使用相同邮件重复数据删除ID发送的任何邮件都将被成功接受,但不会在5分钟的重复数据删除间隔内传递。

但是在API参考中,他们提到:

启用ContentBasedDeduplication时,在重复数据删除间隔内发送的具有相同内容的邮件将被视为重复邮件,并且仅传递该邮件的一个副本。

尝试创建FIFO队列时,看不到任何更改重复数据删除间隔的选项。是固定的吗?

amazon-sqs amazon-web-services aws-sdk

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

在 sinon 中存根函数以在每次调用时返回不同的值

我有一个功能,如下所示:

function test(parms) {
        var self = this;
        return this.test2(parms)
        .then(function (data) {
            if (data) {
                return ;
            }
            else {
                return Bluebird.delay(1000)
                .then(self.test.bind(self, parms));
            }
        }.bind(self));
    };
Run Code Online (Sandbox Code Playgroud)

我正在尝试为此函数编写单元测试。我sinon.stub用来模拟函数的功能test2

我写了一个测试用例,其中test2返回true,因此test函数成功完成执行。但是我想要一个测试用例,在第一个实例test2返回时false,它等待延迟并且下次test2返回true。为此,我写了我的测试用例如下:

var clock;
var result;
var test2stub;
var count = 0;

before(function () {
    clock = sinon.useFakeTimers();
    //object is defined before
    test2stub = sinon.stub(object,"test2", function () {
        console.log("Count is: " + count);
        if …
Run Code Online (Sandbox Code Playgroud)

javascript unit-testing node.js sinon

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

PG :: InsufficientPrivilege:错误:拒绝在rails应用程序上创建数据库Ruby的权限

我正在尝试为我的rubyonrails应用程序创建一个postgresql数据库,我在安装后按照以下步骤操作:

sudo -u postgres -i
psql
CREATE USER rohitrp
CREATE DATABASE library_development OWNER rohitrp
CREATE DATABASE library_test OWNER rohitrp
Run Code Online (Sandbox Code Playgroud)

我的database.yml看起来像这样:

development:
  adapter: postgresql
  encoding: unicode
  database: library_development
  username: rohitrp
  password:
  pool: 5
  timeout: 5000

test:
  adapter: postgresql
  encoding: unicode
  database: library_test
  username: rohitrp
  password:
  pool: 5
  timeout: 5000
Run Code Online (Sandbox Code Playgroud)

当我运行rake db:setup时出现以下错误:

PG::InsufficientPrivilege: ERROR:  permission denied to create database
: CREATE DATABASE "library_development" ENCODING = 'unicode'
/home/rohitrp/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/connection_adapters/postgresql/database_statements.rb:155:in `async_exec'
/home/rohitrp/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/connection_adapters/postgresql/database_statements.rb:155:in `block in execute'
/home/rohitrp/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/connection_adapters/abstract_adapter.rb:473:in `block in log'
/home/rohitrp/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/activesupport-4.2.4/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
/home/rohitrp/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/connection_adapters/abstract_adapter.rb:467:in `log'
/home/rohitrp/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/connection_adapters/postgresql/database_statements.rb:154:in `execute' …
Run Code Online (Sandbox Code Playgroud)

postgresql ruby-on-rails ubuntu-14.04

5
推荐指数
2
解决办法
8775
查看次数

将 cqlsh 与 ssl 结合使用

我在我的 cassandra 节点中启用了 ssl 加密,我正在尝试弄清楚如何使用带有 ssl 的 cqlsh 连接到我的节点:

当我运行时./cqlsh --ssl,出现以下错误:

Validation is enabled; SSL transport factory requires a valid certfile to be specified. Please provide path to the certfile in [ssl] section as 'certfile' option in /root/.cassandra/cqlshrc (or use [certfiles] section) or set SSL_CERTFILE environment variable.
Run Code Online (Sandbox Code Playgroud)

我点击了https://docs.datastax.com/en/cassandra/2.1/cassandra/security/secureCqlshSSL_t.html上的链接:

[authentication]
username = fred
password = !!bang!!$
Run Code Online (Sandbox Code Playgroud)

我保留在根文件夹中,以便任何用户都可以登录并访问公共文件夹(而不是在我的用户目录中)。但是,在这种情况下密码是什么?我需要输入密码吗?!

certfile = ~/keys/node0.cer.pem
Run Code Online (Sandbox Code Playgroud)

我是否需要将此证书文件添加到 cassandra 的信任库中,或者我可以只添加 cassandra 节点证书本身?

我正在使用 Cassandra 2.2.7。

ssl cassandra cqlsh datastax

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