- Siêu lớp và danh mục iOS/Objective-C
- object-c - -1001 lỗi khi NSURLSession vượt qua httpproxy và /etc/hosts
- java - Nhận địa chỉ url bằng lớp mạng
- ios - Âm thanh không phát trong thông báo đẩy
Hãy xem xét hai tình huống:
//1
Short s = 10; // rõ ràng là biên dịch
//2
takeShort(10); //lỗi - int không áp dụng được
//Ở đâu:
static void takeShort(Short s) {}
Tôi giả sử trường hợp 1 được trình biên dịch thay đổi thành:
_temp_s ngắn = 10;
Ngắn s = Short.valueOf(_temp_s);
Bạn có thể giải thích trình biên dịch đang cố gắng thực hiện điều gì trong trường hợp 2 nên nó không biên dịch được không? Nếu nó không thử áp dụng autoboxing như trường hợp 1 thì tại sao?
biên tập
Tham chiếu đến JSL trong câu trả lời của johnchen902 giải thích hành vi của trình biên dịch.
Vẫn chưa hoàn toàn rõ ràng tại sao JLS không hỗ trợ "chuyển đổi thô thu hẹp theo sau là chuyển đổi quyền anh" cho chuyển đổi cuộc gọi phương thức, giống như đối với chuyển đổi gán các biểu thức không đổi kiểu byte, short, char hoặc int. Có ý tưởng gì không?
câu trả lời hay nhất
s ngắn = 10;
这是一个chuyển đổi bài tập
,10
là một biểu thức hằng số. JLS说:
5.2. Chuyển đổi bài tập
Chuyển đổi phép gán xảy ra khi giá trị của một biểu thức được gán cho một biến: loại biểu thức phải được chuyển đổi thành loại của biến.
......
Ngoài ra, nếu biểu thức là biểu thức không đổi có kiểu byte, short, char hoặc int:
- Chuyển đổi nguyên thủy thu hẹp theo sau là chuyển đổi quyền anh có thể được sử dụng nếu loại biến là:
- Short và giá trị của biểu thức hằng được biểu thị bằng loại short.
takeShort(10);
这是一个Chuyển đổi cuộc gọi phương thức
. JLS说:
5.3. Chuyển đổi lời gọi phương thức
Chuyển đổi lệnh gọi phương thức được áp dụng cho từng giá trị đối số trong lệnh gọi phương thức hoặc hàm tạo: loại biểu thức đối số phải được chuyển đổi thành loại của tham số tương ứng.
Bối cảnh gọi phương thức cho phép sử dụng một trong những điều sau đây:
- chuyển đổi danh tính
- một sự chuyển đổi nguyên thủy mở rộng
- một chuyển đổi tham chiếu mở rộng
- chuyển đổi quyền anh tùy chọn, sau đó mở rộng chuyển đổi tham chiếu
- một chuyển đổi mở hộp tùy chọn, theo sau là một chuyển đổi nguyên thủy mở rộng.
......
Nếu loại biểu thức không thể được chuyển đổi thành loại tham số bằng một chuyển đổi được phép trong ngữ cảnh gọi phương thức thì sẽ xảy ra lỗi thời gian biên dịch.
Không giống như chuyển đổi bài tập, các chuyển đổi được liệt kê ở trên không thể chuyển đổiint
转换为Ngắn
, do đó xảy ra lỗi thời gian biên dịch.
Thật không may, một số người đã từ chối bản chỉnh sửa của kiruwka trước khi tôi phê duyệt nó, vì vậy tôi đã tự mình chỉnh sửa nó
Ví dụ chuyển đổi cuộc gọi phương thức:
// takeInteger(int) takeDouble(double) takeObject(Object) takeIntegerObject(Integer)
takeInteger(5); // một chuyển đổi danh tính
takeDouble(5); // một chuyển đổi nguyên thủy mở rộng
takeObject(new Integer(5)); // chuyển đổi tham chiếu mở rộng
takeIntegerObject(5); // một chuyển đổi quyền anh
takeObject(5); // chuyển đổi quyền anh theo sau là mở rộng chuyển đổi tham chiếu
takeInteger(new Integer(5)); // một chuyển đổi mở hộp
takeDouble(new Integer(5)); // một chuyển đổi mở hộp, theo sau là một chuyển đổi nguyên thủy mở rộng.
Về java - tự động đóng hộp các chữ số: khởi tạo trình bao bọc và truyền các đối số phương thức không nhất quán, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/16505959/
fiddle :http://jsfiddle.net/rtucgv74/ Tôi đang cố gắng khớp ký tự đầu tiên với số có 3 chữ số. Vì vậy, mã bên dưới sẽ cảnh báo f234. Nhưng thay vào đó nó trả về null? Mã nguồn: varreg
Sao chép mã như sau: Dim strOk,strNo strOk = "12312321$12
Tôi muốn tìm mẫu {a number}/{a number}/{a string}. Tôi có thể làm cho số/số hoạt động nhưng khi tôi thêm/chuỗi thì không. Ví dụ tôi đang cố gắng tìm: 15
Tôi, tôi đang tạo một mẫu biểu thức chính quy để kiểm tra xem một chuỗi có phải là: number.number.number như thế này: 1.1.1 0.20.2 58.55541.5221 Trong java tôi sử dụng chuỗi này: Private static Patt
Tôi có một chuỗi và tôi cần kiểm tra xem nó có chứa số/số ở cuối chuỗi hay không và cần tăng số/chữ số đó lên cuối chuỗi +1 Tôi sẽ nhận được chuỗi sau string2 =giả sử_name_1 string3
Tôi đang tìm biểu thức chính quy (số/số) như (1/2) Số phải có 1-3 chữ số. Tôi sử dụng Java. Tôi nghĩ vấn đề của tôi sâu sắc hơn biểu thức thông thường. Tôi không thể làm việc này String s="(1/15)";
Ai đó có thể giúp tôi hiểu tại sao tôi gặp lỗi loại khi sử dụng đoạn mã sau không: function sumOfTwoNumbersInArray(a: [number, number]) { return a[0] +
Tôi đã từng thấy một số người gặp phải vấn đề tương tự trước đây, nhưng họ có vẻ khác nhau nên giải pháp cũng khác nhau. Vì vậy, đây là: Tôi đang cố gắng trả về phạm vi kích thước đã biết của một trang tính trong Google Apps Script như thế này: var myRange
Tôi đang cố gắng hiểu mô-đun biểu thức chính quy trong python. Tôi đang cố gắng làm cho chương trình của mình khớp với mẫu sau từ một dòng văn bản do người dùng nhập: Các số trong khoảng 8-13 "/" Các số trong khoảng 0-15 Ví dụ: 2/8, 13/11, 10/9, vân vân. Mẫu tôi nghĩ ra
Nói một cách đơn giản, chương trình tôi đang thực hiện yêu cầu tôi phải chia đầu vào của máy quét (ví dụ: 2 giăm bông và phô mai 5,5). Nó sẽ đọc các đơn đặt hàng tạp hóa và chia chúng thành ba mảng. Tôi nên sử dụng string.split và có thể chia đầu vào này thành ba phần bất kể từ ở giữa
(số) & (-số) nghĩa là gì? Tôi đã tìm kiếm nhưng không tìm thấy nghĩa tôi muốn dùng i & (-i) trong vòng lặp for, ví dụ: for (i = 0; i 110000 . Đối với i không có giá trị nào cao hơn
Cần đặt ID hình ảnh thành một số var number = $(this).attr('rel'); number =parseInt(number);
Tôi có một hàm mà tôi muốn đảm bảo rằng nó chấp nhận một chuỗi theo sau là một số. Và tùy chọn, thêm các cặp số chuỗi. Giống như một bộ dữ liệu, nhưng "vô hạn" số lần: const fn = (...args: [string, number] | [s
Tôi muốn sao chép thay đổi của số đầu vào "Có sẵn" và cộng hoặc trừ nó vào "Tổng" Nếu người đó thay đổi "Có sẵn" thành "3", "Tổng" sẽ trở thành "9". Nếu người dùng thay đổi "Có sẵn" thành "5", "Tổng" sẽ trở thành "11". $('#id1').b
Tôi gặp sự cố đơn giản liên quan đến dây bị đứt trong R. Tôi đang cố gắng dán nhưng tôi gặp khó khăn khi ngắt quãng giữa (ký tự/số). Lưu ý rằng các giá trị được chứa trong vectơ (V1=81,V2=55,V3=25) Tôi đã thử mã này: cat(p
Thật khó để nói những gì đang được hỏi ở đây. Câu hỏi mơ hồ, mơ hồ, không đầy đủ, quá rộng hoặc hùng biện và không thể trả lời hợp lý ở dạng hiện tại. Để được trợ giúp làm rõ vấn đề này để bạn có thể mở lại, hãy truy cập trung tâm trợ giúp. Đã đóng
Tôi đang gặp lỗi sau trong Bản mô tả: Đối số của loại 'số []' không thể gán cho tham số của loại 'số' I
Trong hướng dẫn này, bạn sẽ tìm hiểu về số JavaScript thông qua các ví dụ. Trong JavaScript, số là kiểu dữ liệu cơ bản. Ví dụ: const a = 3; const b = 3.13; không giống như một số ngôn ngữ lập trình khác
Tôi đã đọc trên MDN Giới thiệu lại về JavaScript rằng số JavaScript chỉ là loại chính xác của dấu phẩy động, không có số nguyên trong JavaScript. Tuy nhiên, JavaScript có hai chức năng, pa
Chúng tôi quản lý hàng tồn kho của mình trong Excel. Tôi biết điều này hơi lỗi thời, nhưng chúng tôi đang phát triển một công ty kinh doanh và tất cả tiền của chúng tôi bị kẹt vào hoạt động kinh doanh và không có tiền để đầu tư vào CNTT. Vì vậy, tôi đang tự hỏi liệu tôi có thể sử dụng Excel theo chương trình để tự động hoàn thành số sản phẩm không? đây là một sản phẩm
Tôi là một lập trình viên xuất sắc, rất giỏi!