小编Iri*_*dul的帖子

IntelliJ无法解析符号"newFixedThreadPool"

我是IntelliJ和Java的新手.我正在尝试学习多线程,我遇到了Executors课程.

所以我想测试一下,这是我的代码示例.

import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;


public class LegController {
    private List<Runnable> legs;
    private ExecutorService execute;

    public LegController() {
        legs = new ArrayList<>();
        for (int i = 0; i < 6; i++) {
            legs.add(LegFactory.getLeg("LEFT"));
        }

        execute = new Executors.newFixedThreadPool(6);
    }

    public void start(){

        //TODO
    }
}
Run Code Online (Sandbox Code Playgroud)

但是我收到一个错误:"无法解析符号'newFixedThreadPool'".我尝试了"无效缓存并重新启动",但它没有帮助,我尝试了同步和重建项目,但它也没有用.

我不明白这个问题的来源,因为导入了类Executors.此外,还有自动完成Executors的静态方法.也许输入有问题,但如果是这样,我该怎么办呢?

java intellij-idea cannot-find-symbol

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

是java 8供应商替换构造函数调用

我一直在关注Java 8的供应商和消费者接口以及我所理解的它可以取代构造函数调用.
我在dzone(链接在这里)上看到了一个使用ShapeFactory的例子.代码非常简单,是一个简单的形状类工厂.
但她如此使用它:

Supplier<ShapeFactory> supplier = ShapeFactory::new;
supplier.get().getShape("rectangle").draw(); 
Run Code Online (Sandbox Code Playgroud)

但为什么它比做一个简单的经典更好:

ShapeFactory factory = new ShapeFactory();
factory.getShape("rectangle").draw()
Run Code Online (Sandbox Code Playgroud)

这足够简单和有效.此外,如果ShapeFactory类的构造函数具有参数,则Supplier将无法工作,我们将不得不使用Function或其他方法.

那么为什么在这个精确的情况下使用像这样的供应商?

java

7
推荐指数
2
解决办法
2142
查看次数

Laravel验证对象json的数组

我在Laravel 5.5 API上有一个POST端点,我用邮递员来测试我的路线,这就是问题所在.我想发送一个相同类型的对象的数组,如下所示:

[
  { 
   "name":"test",
   "tag":"TEST"
  },
  {
   "name":"test2",
   "tag":"TEST_2"
  }
]
Run Code Online (Sandbox Code Playgroud)

但我无法正确验证它.

在我的控制器中,我有这个:

$validator = Validator::make($requests->all(), [

   'name' => 'required|string',
   'tag' => 'required|string'
]);

if($validator->fails()) 
   //Warn user for errors 
Run Code Online (Sandbox Code Playgroud)

我也尝试过简单

$this->validate($requests->all() .... )
Run Code Online (Sandbox Code Playgroud)

我试图重新命名规则'.name''*.name',但没有成功.

我试图替换$request->all()$request->input(),但没有成功.

我也试图循环它,但我得到例外

foreach($request as $req){

  $validator = Validator::make($req ....) 

  //rest of the code
}
Run Code Online (Sandbox Code Playgroud)

另一方面,我可以检索这样的数据$datas = $request->all()并存储它们,但没有验证.

似乎唯一有效的解决方案是命名我的数组:

{
 "data" : [
      { 
       "name":"test",
       "tag":"TEST"
      },
      {
       "name":"test2",
       "tag":"TEST_2"
      }
    ]
}
Run Code Online (Sandbox Code Playgroud)

然后命名规则,'data.*.name' …

arrays api validation json laravel-5

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

Angular-CLI 代理在 docker 中不起作用

我有一个 docker-compose 文件,里面有我项目所需的一切。

这个 docker-compose 有一个 nginx 服务器,mysql,phpmyadmin 和 php。在它的顶部,我最近添加了一个有角度的容器。如果我转到 localhost:4200,我在 angular 应用程序上,如果我转到 localhost:80,我在 Laravel 后端,一切都正常。

现在我需要向我的后端 API 发出一个简单的经典请求。我为 angular 设置了一个代理,如下所示:

{
   "/api/*": {
      "target":"http://localhost:80",
      "secure":false,
      "changeOrigin":true,
      "pathRewrite": {"^/api" : ""},
      "logLevel":"debug"
   }
}
Run Code Online (Sandbox Code Playgroud)

这是我根据这个主题复制的配置。但是当我尝试拨打电话时,Chrome 说http://localhost:4200/api/test不存在(错误 404),这是正常的。另一方面,角度服务器说
HPM] Error occurred while trying to proxy request /test from localhost:4200 to http://localhost:80 (ECONNREFUSED) (https://nodejs.org/api/errors.html#errors_common_system_errors)

我猜它来自 docker,但我不知道如何解决这个问题。

[编辑]

version: '2'

services:
  web_server:
    restart: always
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - /projects/laravel/:/var/www/                                               
      - /docker/sites-enabled-nginx:/etc/nginx/sites-enabled/     
      - /docker/nginx.conf:/etc/nginx/nginx.conf
    links:
      - php:php …
Run Code Online (Sandbox Code Playgroud)

proxy docker docker-compose angular-cli angular

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

AWS新创建的RDS快照未找到

我有一个在 AWS 账户中运行的 RDS 数据库。我想将其复制到另一个帐户以用作应用程序新部署的基础。我像这样使用 CLI:

aws rds create-db-cluster-snapshot \ 
  --db-cluster-snapshot-identifier snapid \
  --db-cluster-identifier rdsid 
Run Code Online (Sandbox Code Playgroud)

此命令成功(如果我登录 AWS 控制台,我可以看到新的快照)。但是当我尝试使用修改其属性时

aws rds modify-db-snapshot-attribute \
  --db-snapshot-identifier snapid \
  --attribute-name restore \ 
  --values-to-add '["other_account_id"]'
Run Code Online (Sandbox Code Playgroud)

然后我收到以下错误:
An error occurred (DBSnapshotNotFound) when calling the ModifyDBSnapshotAttribute operation: DBSnapshot not found: snapid

如果我可以共享快照,我就可以使用此快照在另一个帐户中创建一个新实例。

有没有更好的方法来跨账户共享RDS实例?

snapshot amazon-web-services

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