小编Sas*_*sha的帖子

"X"类型的参数不能分配给"X"类型的参数

美好的一天.我是使用VSCode的Type Script的新手.

获得以下错误:

  1. 错误TS2322:类型'()=>字符串'不能分配给'string'类型.

  2. 错误TS2322:类型'()=>数字'不能分配给'number'类型.

代码:

DTO.ts

interface DTO {

    getId(): number;
    getValue(): string;
}
export = DTO;
Run Code Online (Sandbox Code Playgroud)

LinkedObject.ts

class LinkedObject {

    public value: string = "Not Set";
    public id: number = 0;

    constructor(value?: string, id?: number) {
        this.value = value;
        this.id = id;
    }
}
export = LinkedObject;
Run Code Online (Sandbox Code Playgroud)

我试图LinkedObject使用上面提到的接口方法实例化类:

TravelClientFormPopulator.ts

class TravelClientFormPopulator {

    public populateComboBoxUsingDTOs(dataObjects: Array<DTO>, comboBoxID: string): void {

        // Get the combo box
        var selectElement = <HTMLSelectElement> document.getElementById(comboBoxID);
        // Reset the options 
        selectElement.options.length = 0; …
Run Code Online (Sandbox Code Playgroud)

typescript visual-studio-code

52
推荐指数
3
解决办法
17万
查看次数

使用opencsv(java)读取.csv文件时跳过空白行

今天是个好日子!我的目标是让csv阅读器在解析文件时跳过空白行,基本上什么也不做,只给我带有至少一个值的行.目前我有两个方法 - > 1st只是读取所有行作为字符串列表并返回它,第二个将结果转换为字符串列表列表,两者都是下面的:

private List<String[]> readCSVFile(File filename) throws IOException {

    CSVReader reader = new CSVReader(new FileReader(filename));
    List<String[]> allRows = reader.readAll();

    return allRows;

}

public List<List<String>> readFile(File filename) throws IOException {

        List<String[]> allRows = readCSVFile(filename);     
        List<List<String>> allRowsAsLists = new ArrayList<List<String>>();      
        for (String[] rowItemsArray :  allRows) {
            List<String> rowItems = new ArrayList<String>();
            rowItems.addAll(Arrays.asList(rowItemsArray));
            allRowsAsLists.add(rowItems);

        }
    return allRowsAsLists;

}
Run Code Online (Sandbox Code Playgroud)

我的第一个想法是检查(在2'nd方法中)数组的长度,如果它的0只是为了忽略它 - 这将是这样的:

for (String[] rowItemsArray :  allRows) {
            **if(rowItemArray.length == 0) continue;**
            List<String> rowItems = new ArrayList<String>();
            rowItems.addAll(Arrays.asList(rowItemsArray));
            allRowsAsLists.add(rowItems);

}  
Run Code Online (Sandbox Code Playgroud)

不幸的是,由于即使行为空,它仍然返回一个元素数组 - …

java csv arrays

3
推荐指数
2
解决办法
7698
查看次数

Compojure 显示图像时遇到问题

我已经为此苦苦挣扎了两天多了,似乎还没有找到解决方案。

因此,我想做的就是在浏览器中显示图像,但是当我调用端点时,会发生以下情况:

Cannot JSON encode object of class: class java.io.File
Run Code Online (Sandbox Code Playgroud)

端点

(context "/servers" []
           :datomic true

           (GET "/:id/graph/:panel-type" {db :db user :user}
                :summary "Return a server graph image"
                :path-params [id :- Long
                              panel-type :- String]
                (let [file-path (str panel-type ".png")

                      result (-> (response/response (clojure.java.io/file file-path))
                                 (response/content-type "image/png")))]

                  (ok result)))) ;; ring.util.http-response
Run Code Online (Sandbox Code Playgroud)

我是 compojure API 的新手,但有些事情让我觉得中间件实现存在问题 - 自定义格式?

中间件

(defn wrap-formats [handler]
  (let [wrapped (wrap-restful-format
                  handler
                  {:formats [:json-kw :transit-json :transit-msgpack]})]
    (fn [request]
      ;; disable wrap-formats for websockets
      ;; since they're not …
Run Code Online (Sandbox Code Playgroud)

image response clojure compojure

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

新行字符作为String的一部分

我有问题创建String看起来如下:

"SSR LANG SA  HK1/EN;S7;P1\n"+
Run Code Online (Sandbox Code Playgroud)

执行此操作的代码应附加\n作为字符串的一部分+ quote + append string literal + actual new line literal:

javaFormattedText.append("   \""+ tokenizer.nextElement() + "\\n\"+\n");
Run Code Online (Sandbox Code Playgroud)

输出String应该看起来:

"SSR LANG SA  HK1/EN;S7;P1\n"+
Run Code Online (Sandbox Code Playgroud)

但看起来:

"SSR LANG SA  HK1/EN;S7;P1
\n"+
Run Code Online (Sandbox Code Playgroud)

因此java抱怨unclosed字符串文字.

这样做的目的是动态生成测试类,其中包含大量需要java格式化字符串的文本信息.

如何实现目标?

UPD

通过这样做解决了这个问题:

String line = (String) AIR_textTokenizer.nextElement();

line = line.replace("\n", "").replace("\r", "");
Run Code Online (Sandbox Code Playgroud)

java string newline

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