- 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
Tôi đã xem qua mã java sau nhưng tôi không chắc ý nghĩa của nó. Chúng ta có thể viết mã bằng '{' sau khi khởi tạo một lớp không, ví dụ: new TestClass { */code go here */}
Nhưng khi tôi cố chạy mã, tôi không thấy "Z is 10" ở đầu ra. Ai đó có thể cho tôi một số liên kết để tôi có thể biết thêm thông tin liên quan đến tính năng này của Java không.
lớp TestClass {
int z;
TestClass công khai(){
z=10;
}
int công khai getZ(){
trả về z;
}
public void setZ(int z){
cái này.z=z;
}
}
hạng A
{
public static void main (String[] args) ném java.lang.Exception
{
TestClass TC = TestClass mới() {
public void testprint() {
System.out.println("Z is " + getZ());
}
};
}
}
câu trả lời hay nhất
Đây là một lớp bên trong ẩn danh. Nó tạo ra một đối tượng là một thể hiện của một số lớp là lớp con của TestClass mà bạn không muốn đặt tên cho lớp con đó (vì bạn chỉ cần tạo đối tượng một cách nhanh chóng và không cần sử dụng lớp đó ở bất kỳ nơi nào khác ) .
Mã chỉ khởi tạo đối tượng, bạn không thực sự gọi các phương thức của đối tượng đã tạo, vì vậy bạn không thấy bất kỳ đầu ra nào. Bạn có thể thêm một dòng vào mã của mình
public static void main (String[] args) ném java.lang.Exception
{
TestClass TC = TestClass mới() {
public void testprint() {
System.out.println("Z is " + getZ());
}
};
// <- gọi phương thức mới (>_< phương thức này sẽ không được biên dịch)
TC.testprint();
}
Trừ khi cách này không hiệu quả vì testprint không được định nghĩa là một phương thức trên TestClass, biến cục bộ tham chiếu đối tượng có kiểu TestClass, do đó trình biên dịch mong muốn tìm thấy một phương thức được xác định trên TestClass hoặc một siêu lớp của TestClass. Bạn có thể thêm một phương thức vào TestClass như sau:
lớp trừu tượng TestClass {
int z;
TestClass công khai(){
z=10;
}
int công khai getZ(){
trả về z;
}
public void setZ(int z){
cái này.z=z;
}
// thêm phương thức mới
bản tóm tắt công khai void testprint();
}
Bây giờ trình biên dịch biết mong đợi một đối tượng kiểu TestClass có một phương thức có tên là testprint. Tôi không phải tạo bản tóm tắt TestClass, tôi có thể thêm triển khai in thử vào đó. Tuy nhiên, vì TestClass là trừu tượng nên rõ ràng đối tượng mới không phải là TestClass mà là một trong các lớp con của nó.
Ngoài ra, hãy gọi phương thức này thông qua một phương thức TestClass khác đã được hiển thị. Sử dụng TestClass của bạn không thay đổi, nhưng thay đổi phương thức chính thành:
public static void main (String[] args) ném java.lang.Exception
{
TestClass TC = TestClass mới() {
public void testprint() {
System.out.println("Z is " + super.getZ());
}
// ghi đè Z getter để gọi testprint
@Ghi đè công khai int getZ(){
thử nghiệm();
trả về z;
}
};
TC.getZ(); // <- gọi phương thức trên đối tượng được tạo ở trên
}
testprint phải được thay đổi để gọi phiên bản siêu hạng của getter của Z, vì vậy chúng ta không có đệ quy vô hạn. Bây giờ getter Z trên lớp con ẩn danh gọi phương thức testprint, vì vậy bạn có thể gọi getter và xem kết quả:
Z là 10
Mã này không gán tên cho lớp con nhưng vẫn gán tên. Nếu tôi thêm một dòng vào cuối main để xem lớp ẩn danh được gọi nội bộ:
System.out.println(TC.getClass());
nó in
hạng A$1
Trong thực tế, không có hạn chế nào khi các phương thức mới được định nghĩa trong các lớp ẩn danh không thể được gọi trực tiếp. Nếu bạn muốn chuyển việc triển khai một lớp sang một phương thức của một số đối tượng khác, bạn cung cấp một lớp ẩn danh, thứ gì đó lấy đối tượng lớp ẩn danh sẽ không biết (và không nên biết, hãy xem LSP ) cách gọi phương thức mới.
Về java - khai báo hàm khi khởi tạo một lớp, 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/23294569/
Có cách nào để chuyển một thể hiện của lớp do người dùng định nghĩa sang một trong các kiểu này theo cách do người dùng xác định bằng cách sử dụng các hàm tạo kiểu tiêu chuẩn (ví dụ: int, set, dict, list, tuple, v.v.) không? Ví dụ lớp Ví dụ:
Tôi biết câu hỏi này có nhiều câu hỏi trong Stackoverflow, nhưng mặc dù có nhiều câu trả lời nhưng những câu trả lời này không giúp ích gì nhiều cho tôi và tôi không tìm thấy câu trả lời. Trong WebAPP của tôi, nó hoạt động tốt nhưng khi tôi chuyển đổi nó sang API thì không thành công (tiêu đề chủ đề
Câu hỏi này đã có câu trả lời: Tại sao toán tử bậc ba bất ngờ truyền số nguyên? (3 câu trả lời) Đã đóng 9 năm trước. Gần đây đã gặp phải bẫy Java
Tôi cố gắng định cấu hình Firebase bằng FirebaseApp.configure() nhưng tôi gặp sự cố sau: *** Chấm dứt ứng dụng do ngoại lệ chưa được phát hiện 'c
Tôi có một lớp thực thể nhân viên tự tham gia có chứa các cột id, tên và ref liên quan đến chính nó. Tôi muốn tạo một phiên bản mới của nó và lưu nó vào cơ sở dữ liệu. Đầu tiên tôi tạo một thể hiện của lớp Nhân viên và đặt tên là người quản lý. Sau đó
Tôi có một biểu mẫu để thêm một căn hộ mới, trong biểu mẫu đó tôi có một danh sách thả xuống để người dùng có thể chọn người chịu trách nhiệm. Rõ ràng khi bạn chọn từ danh sách thả xuống và cố gắng lưu căn hộ, ứng dụng của tôi cho rằng người đó đã bị sửa đổi. Nó báo lỗi sau, cho biết trước tiên tôi nên lưu
Từ trang Visualforce, tôi cần truy xuất URL của phiên bản lực lượng bán hàng của tổ chức chúng tôi chứ không phải URL Visual Force. Ví dụ: tôi cần https://cs1.saleforce.com
Tôi đã tìm thấy một số câu trả lời có thể có cho câu hỏi này, nhưng đây là về việc nâng cấp từ Hibernate 3.4.0GA lên Hibernate 4.1.8. Vì vậy, tính năng này từng hoạt động trong các phiên bản trước và tôi đã tìm hiểu lý do tại sao nó lại hiển thị trong phiên bản mới này
Có vẻ như câu hỏi này đã được hỏi đi hỏi lại nhiều lần mà tôi vẫn chưa tìm được câu trả lời cho vấn đề của mình. Tôi có một mô hình miền dưới đây. Mỗi "Người dùng bảo mật" mới được tạo hoặc cập nhật đều yêu cầu tôi đảm bảo rằng nó có hồ sơ và nếu không có, hãy tạo một hồ sơ mới và gán nó cho nó. Yêu cầu về tập tin cấu hình
Tôi đang gặp sự cố khi gỡ lỗi tại sao JPA không xếp tầng mối quan hệ @ManyToMany của tôi. Tất cả các câu trả lời tôi tìm thấy đều liên quan đến các câu lệnh xếp tầng bị thiếu. Nhưng tôi có chúng và vẫn nhận được: Nguyên nhân bởi: org.hibernate.Transi
API Dịch vụ Play cho biết có một thứ gọi là ID phiên bản. Tuy nhiên, tôi không thể nhập lớp InstanceID sau khi đưa phần sau vào Android Studio biên dịch "com.goo
Tôi đang sử dụng khung Seam. Tôi có 2 thực thể: Yêu cầu lớp công khai @Entity @Table(name = "SRV_REQUEST") Yêu cầu lớp công khai { riêng tư
Câu hỏi này đề cập đến việc xây dựng một Monad thích hợp từ một thể hiện của một đơn nguyên, nhưng chỉ với một số ràng buộc nhất định - chẳng hạn như Set . Bí quyết là gói nó vào một ContT , để trì hoãn các ràng buộc cho đến khi gói/mở gói giá trị của nó. Bây giờ tôi muốn nói về Ap
Tôi đang cố thực hiện truy vấn này: StringBuffer sb = new StringBuffer() sb.append("select p from PointsEntity p " + "where;
Tôi đang cố gắng tìm hiểu xem liệu có thể thay đổi cấu hình chế độ ngủ đông của mình và sử dụng một phiên bản MySQL duy nhất hay không (thay vì nhiều phiên bản MySQL mà tôi hiện có): Tôi có một ứng dụng Java sử dụng chế độ ngủ đông, với 2 lược đồ
Tôi có bố cục trượt tab bao gồm bốn tab, mỗi tab có bố cục và đoạn riêng và trong bố cục Hoạt động chính của tôi, trình xem tham gia thay đổi các tab. Một Chế độ xem (tab) cụ thể trong ứng dụng
Tôi thấy rất nhiều bài đăng cho biết họ đang chạy phiên bản RDS của MySql nhưng không thể kết nối với phiên bản đó, nhưng tôi không chạy RDS. Tôi sử dụng phiên bản EC2 để lưu trữ blog WordPress của mình, được cài đặt bằng Trình cài đặt nền tảng web.
Vì tôi đang chạy ứng dụng (Airflow) trong môi trường ảo python trên phiên bản ec-2 của mình và tôi muốn chạy các lệnh trong môi trường python mặc định trên cùng phiên bản ec2, nên tôi nghĩ sẽ tốt hơn nếu ssh cho riêng tôi ví dụ
Câu hỏi này đã có câu trả lời: Cách sửa đối tượng Hibernate "tham chiếu một phiên bản tạm thời chưa được lưu - lưu tra
Ví dụ: chạy APP1 .. ... chạy APP1 ... chạy APP2 Làm thế nào để nói với Vue trong APP2 rằng tôi cần gọi APP1?
Tôi là một lập trình viên xuất sắc, rất giỏi!