美好的一天.我是使用VSCode的Type Script的新手.
获得以下错误:
错误TS2322:类型'()=>字符串'不能分配给'string'类型.
错误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) 今天是个好日子!我的目标是让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)
不幸的是,由于即使行为空,它仍然返回一个元素数组 - …
我已经为此苦苦挣扎了两天多了,似乎还没有找到解决方案。
因此,我想做的就是在浏览器中显示图像,但是当我调用端点时,会发生以下情况:
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) 我有问题创建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)