ArrayListをJavaで読み取り専用にする方法は?
unmodizableList() java.util.Collectionsのメソッド classは、Listインターフェイスのオブジェクト(そのクラスを実装するオブジェクト)を受け入れ、指定されたオブジェクトの変更不可能な形式を返します。ユーザーは、取得したリストへの読み取り専用アクセスのみが可能です。
例
次のJavaプログラムは、ArrayListオブジェクトを作成し、それに要素を追加して、読み取り専用のListオブジェクトに変換します。
import java.util.ArrayList; import java.util.Collections; import java.util.List; public class ArrayListReadOnly { public static void main(String[] args) { //Instantiating an ArrayList object ArrayList<String> list = new ArrayList<String>(); list.add("JavaFx"); list.add("Java"); list.add("WebGL"); list.add("OpenCV"); System.out.println(list); //Converting the ArrayList to read only list List<String> myList = (List<String>) Collections.unmodifiableList(list); System.out.println("Array list converted to read only "+list); } }
出力
[JavaFx, Java, WebGL, OpenCV] Array list converted to read only [JavaFx, Java, WebGL, OpenCV]
Listオブジェクトの読み取り専用ビューを取得すると、その内容を変更することはできません。つまり、 UnsupportedOperationException を実行した場合、要素を直接追加または削除したり、Iteratorオブジェクトを使用したりすることはできません。 引き上げられます。
例
import java.util.ArrayList; import java.util.Collections; import java.util.List; public class ArrayListReadOnly { public static void main(String[] args) { //Instantiating an ArrayList object ArrayList<String> list = new ArrayList<String>(); list.add("JavaFx"); list.add("Java"); list.add("WebGL"); list.add("OpenCV"); System.out.println(list); //Converting the ArrayList to read only list List<String> myList = (List<String>) Collections.unmodifiableList(list); myList.add("CoffeeScript"); System.out.println("Array list converted to read only "+myList); } }
実行時例外
[JavaFx, Java, WebGL, OpenCV] Exception in thread "main" java.lang.UnsupportedOperationException at java.util.Collections$UnmodifiableCollection.add(Unknown Source) at SEPTEMBER.remaining.ArrayListReadOnly.main(ArrayListReadOnly.java:20)
-
JTextFieldがJavaで数値のみを受け入れるようにするにはどうすればよいですか?
デフォルトでは、 JTextField 数字を許可できます 、文字 、および特別 キャラクター 。 JTextFieldに入力されたユーザー入力の検証 特に入力文字列をintなどの数値に変換する必要がある場合は、難しい場合があります。 次の例では、 JTextField 数値のみを入力できます 。 例 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class JTextFieldValidation extends JFrame { JTextField tf;
-
Tkinterテキストウィジェットを読み取り専用にする方法は?
Tkinterでは、テキストウィジェットを無効にしたい場合があります。これを実現するために、テキスト構成をDISABLEDとして設定できます。これにより、テキストウィジェットがフリーズし、読み取り専用になります。 この例では、テキストウィジェットと、ユーザーがテキストウィジェットを即座に無効化またはフリーズできるボタンを作成します。 例 #Import the library from tkinter import * #Create an instance of window win= Tk() #Set the geometry of the window win.geometry(