小编Rit*_*ito的帖子

在Java HashMap中限制get方法的对象类型

我已经像这样实例化了我的HashMap:

Map<String, Integer> myHashMap = new HashMap<String, Integer>();
Run Code Online (Sandbox Code Playgroud)

的数据类型Key为String,因此当我尝试在地图中插入新的键值对并保持KeyInteger时,它将引发错误。

myHashMap.put(1L, "value");
Run Code Online (Sandbox Code Playgroud)

这意味着在put方法中,他们已经限制了的数据类型Key。但是,当使用get方法从映射中获取值时,它并不会检查的数据类型Key。因此,如果我写这样的东西,它不会给出编译错误。

myHashMap.get(1L);
Run Code Online (Sandbox Code Playgroud)

get在Java Map界面中检查了该方法,其参数类型为Object,因此这就是为什么它允许将任何Object用作put方法参数的原因。

V get(Object key)
Run Code Online (Sandbox Code Playgroud)

有什么方法可以限制在get方法中作为参数传递的数据类型?

我传递的参数应具有与Key实例化哈希映射时使用的数据类型相同的数据类型。

java hashmap

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

AWS Lambda:类java.lang.ClassNotFoundException

我收到此消息,我不知道如何解决它.在网上搜索并尝试实施他们的建议,但没有运气. 在此输入图像描述

我基本上按照此链接中指定的说明进行操作 - http://docs.aws.amazon.com/toolkit-for-eclipse/v1/user-guide/lambda-tutorial.html

但是,我没有使用Eclipse中嵌入的AWS管理控制台上传项目,而是尝试创建项目的zip并将其上传到AWS Web控制台.

以下是我的项目结构 - 在此输入图像描述

这就对了!!我试图在这里做什么都没有.它只是Lambda中的HelloWorld示例.

现在,这就是我创建zip文件的方式,这在Eclipse中非常简单 - 在此输入图像描述

创建zip后,我将其上传到AWS Web控制台的代码选项卡下 - 在此输入图像描述

配置选项卡看起来像这样 - 在此输入图像描述

现在,当我单击"测试"按钮时,它无法找到example.Hello类.

为什么Lambda函数难以找到这个类呢?任何人都可以建议这个执行中可能出错的地方吗?

还附上日志声明,以防它有帮助 -

在此输入图像描述

deployment amazon-web-services classnotfoundexception aws-lambda

9
推荐指数
2
解决办法
4276
查看次数

使用ES6中的map函数更新对象的属性值

我正在尝试在ES6中对此进行编码。以下是我要实现的目标。假设我有一个名为的对象数组schools

let schools = [
    {name: 'YorkTown', country: 'Spain'},
    {name: 'Stanford', country: 'USA'},
    {name: 'Gymnasium Achern', country: 'Germany'}
];
Run Code Online (Sandbox Code Playgroud)

现在,我想编写一个函数editSchoolName,该函数将带有3个参数schools(这是我在上面定义的数组)oldNamename

我将在参数中传递学校的名称,oldName并且该名称应使用参数中的值进行更新name

我不想更改变量的状态,schools因此我正在使用一个map函数,该函数将返回具有更改的新数组。

editSchoolName函数将这样调用-

var updatedSchools = editSchoolName(schools, "YorkTown", "New Gen");
Run Code Online (Sandbox Code Playgroud)

在此,名称YorkTown应替换为name New Gen。因此,数组的期望值updatedSchools应为-

let updatedSchools = [
    {name: 'New Gen', country: 'Spain'},
    {name: 'Stanford', country: 'USA'},
    {name: 'Gymnasium Achern', country: 'Germany'}
];
Run Code Online (Sandbox Code Playgroud)

这就是我的editSchoolName函数的样子-

const editSchoolName …
Run Code Online (Sandbox Code Playgroud)

javascript arrays ecmascript-6 es6-map

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

将EventHandler添加到Label中包含的ImageView

我最近开始探索Java FX,并希望创建一个自定义标签,里面有一个ImageView.

这是我的自定义标签的代码.

Image image = new Image(getClass().getResourceAsStream("/img/remove.png"), 20, 20, true, true);
ImageView removeImageView = new ImageView(image);

Label customLabel = new Label(labelText, removeImageView);
customLabel.setFont(Font.font("Arial", FontWeight.BOLD, 20));
Run Code Online (Sandbox Code Playgroud)

这就是我的自定义标签的外观.

在此输入图像描述

现在我想将鼠标单击EventHandler添加到ImageView.这是我处理鼠标点击的代码.

removeImageView.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>() {
      @Override
      public void handle(MouseEvent event) {
        System.out.println("Imageview Clicked");
      }
    });
Run Code Online (Sandbox Code Playgroud)

但是当我点击cross图像时,事件没有被捕获.

我试验了一下,并尝试将一个EventHandler添加到customLabel.标签能够捕获鼠标点击.

在我看来,我正面临这个问题,因为ImageView包含在Label中.我想知道的是,这是对JFX的限制还是有任何替代方法来实现此功能.谢谢.

java javafx mouseclick-event imageview eventhandler

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

由于编码问题,无法使用 TextLoader 从 langchain.document_loaders 库读取文本数据文件

我是 Langchain 的新手,我遇到了一个问题。我的最终目标是读取文件的内容并创建数据的矢量存储,以便稍后查询。

from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.text_splitter import CharacterTextSplitter
from langchain.vectorstores import FAISS
from langchain.document_loaders import TextLoader


loader = TextLoader("elon_musk.txt")
documents = loader.load()
text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)
docs = text_splitter.split_documents(documents)
Run Code Online (Sandbox Code Playgroud)

我的数据文件似乎存在一些问题,因此它无法读取我的文件的内容。是否可以加载 utf-8 格式的文件?我的假设是使用 utf-8 编码我不应该遇到这个问题。

以下是我在代码中遇到的错误:

---------------------------------------------------------------------------
UnicodeDecodeError                        Traceback (most recent call last)
File ~\anaconda3\envs\langchain-test\lib\site-packages\langchain\document_loaders\text.py:41, in TextLoader.load(self)
     40     with open(self.file_path, encoding=self.encoding) as f:
---> 41         text = f.read()
     42 except UnicodeDecodeError as e:

File ~\anaconda3\envs\langchain-test\lib\encodings\cp1252.py:23, in IncrementalDecoder.decode(self, input, final)
     22 def decode(self, input, final=False):
---> 23     return codecs.charmap_decode(input,self.errors,decoding_table)[0] …
Run Code Online (Sandbox Code Playgroud)

file-format langchain py-langchain

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

用于在HTML中导入多个js文件的<script />和<script> </ script>之间的区别

我最近遇到的这个问题,我试图在我的HTML页面中导入多个js文件,如下所示 -

<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore.js" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.js" />
<script src="lib/js/backbone.js" />
Run Code Online (Sandbox Code Playgroud)

但我遇到的问题是,它只加载了第一个js文件,其余的js文件没有加载.我还检查了浏览器中的网络部分,剩下的两个文件只是没有被调用.然后我将语法改为此 -

<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.js"></script>
<script src="lib/js/backbone.js"></script>
Run Code Online (Sandbox Code Playgroud)

然后加载所有3个文件成功发生.我的问题是,是

<script src="" /> 
Run Code Online (Sandbox Code Playgroud)

一个错误的语法或这个问题仅对我有用吗?

html javascript

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