• Trong thời gian này, bạn không thể tạo bài mới, đăng comment, hay tạo tài nguyên mới để diễn đàn dọn dẹp nội dung.
    Diễn đàn sẽ sớm mở trở lại, chi tiết hãy theo dõi tại Discord
nahkd123

Hướng dẫn Type Parameter và sử dụng nó để viết API...

nahkd123

DEVELOPER
Chào ae, đây là tutorial đầu tiên mà mình viết ra, nếu ae biết đến Type Parameter rồi thì có thể out, còn nếu chưa biết thì có thể đọc.

1. Type Parameter là cái wtf gì vậy???
Type Parameter hay theo chị google đọc là Loại Tham Số là chữ cái (nó có thể nhiều hơn 1 chữ) chỉ định dạng field sẽ đặt trong object.
Nếu ae đã từng sử dụng ArrayList thì ae sẽ ghi là:
Mã:
ArrayList< tên của 1 object >
VD: Tạo 1 ArrayList chứa các string phải nhập là ArrayList<String>

Khi ae thử tạo 1 flag cho WorldRegion thì nó lại hiện là "T flags..."

"T" không phải là 1 object, mà nó được gọi là Type Parameter.

2. Làm sao để tạo Type Parameter???????
Sau khi bạn đã thêm modifier (hoặc ko có), bạn sẽ ghi là "<>"
VD:
Mã:
public <KonKacObject> void clearAll(KonKacObject anyObjectYouWant) { /* Code */}
chỗ KonKacObject có thể là một object bất kỳ.

Bạn cũng có thể thêm vào tên class nếu bạn muốn:
Mã:
public <Value> class SortedList {...}
Đối với phần tên class thì nó sẽ yêu cầu "loại tham số" khi tạo 1 object mới (hay còn gọi là constructor hoặc new íntance):
Mã:
new SortedList<String>();

3. Điều j sẽ xảy ra khi t dùng code ở trên (code "new SortedList<String>()" ấy)
Nó sẽ đổi "Value" thành "String"!!11!!1!!1!!
VD:
Mã:
public <Value> class SortedList {

    ArrayList<Value> a;
    public SortedList() {
        this.a = new ArrayList<Value>();
    }

}

// Đoạn code trên sẽ chuyển class thành....
public class SortedList {               // <= mất phần declared type parameter

    ArrayList<String> a;               // <= Nó đã chuyển thành String!!
    public SortedList() {
        this.a = new ArrayList<String>();               // <= Nó tạo 1 list chứa toàn bộ string...
    }

}
Bạn cũng có thể implement 1 interface List rồi thêm 1 số method vào cũng đc (vì nó có Type Parameter là T).

4. gimme sum examplezz
Đây là 1 class tên là MapEntry mà mình code ra làm example:
Mã:
public <Type> class MapEntry {
    public Type a;
    public MapEntry(Type obj) {
        this.a = obj;
    }

    public Type get() {
        return this.a;
    }
}


Tutorial đầu tiên của mình mong ae thông cảm ko ném đá, mà nếu có thì vui lòng thảo luận để mình có thể thêm
 
Bai viet nguy hiem khuyen cao ko nen xem
 
tự nhiên tutorial đầu tiên nào cũng toàn cái gì đâu không vậy ta :v
số đông thành viên trong group còn không biết code là gì mà bay vào parameter =))
 
tự nhiên tutorial đầu tiên nào cũng toàn cái gì đâu không vậy ta :v
số đông thành viên trong group còn không biết code là gì mà bay vào parameter =))
thì mấy cái này cũng chỉ vào trình độ code vừa phải thôi chứ ko biết code thì vào mục lập trình làm gì : v
 
Chỗ này nên là hoặc chứ nhỉ. T có thể đổi thành U, V
Mình cũng đã thử rồi, với cả việc thêm "extends" cũng được, nhưng nếu như vậy thì có thể thay tất cả "Value" thành "SomeClass" cho khỏi dài dòng.

Với cả Type Parameter thì ko cần phải để duy nhất 1 chữ, nó có thể để nhiều hơn 1 chữ cũng được.
 
Mình cũng đã thử rồi, với cả việc thêm "extends" cũng được, nhưng nếu như vậy thì có thể thay tất cả "Value" thành "SomeClass" cho khỏi dài dòng.

Với cả Type Parameter thì ko cần phải để duy nhất 1 chữ, nó có thể để nhiều hơn 1 chữ cũng được.

lol, bạn ơi cái đó đó cần đặt tên cho Generic mới xài dc, nếu bạn đặt luôn là Value bạn khỏi làm mà xài trong class luôn lol.
*****Nội dung được bổ sung thêm*****
nếu bạn k hiểu thì bạn thử làm đi :D mình có để trên comment thứ 1
 

Thống kê nội dung

Tạo
nahkd123,
Trả lời lần cuối từ
Le Thinh,
Trả lời
9
Lượt xem
1,847
Quay lại
Trên cùng