add api SymbolTable(Class[])
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (11, macos-latest) (push) Has been cancelled Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (11, ubuntu-24.04) (push) Has been cancelled Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (11, windows-latest) (push) Has been cancelled Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (17, macos-latest) (push) Has been cancelled Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (17, ubuntu-24.04) (push) Has been cancelled Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (17, windows-latest) (push) Has been cancelled Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (21, macos-latest) (push) Has been cancelled Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (21, ubuntu-24.04) (push) Has been cancelled Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (21, windows-latest) (push) Has been cancelled Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (8, macos-latest) (push) Has been cancelled Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (8, ubuntu-24.04) (push) Has been cancelled Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (8, windows-latest) (push) Has been cancelled Details

This commit is contained in:
wenshao 2025-06-04 13:21:09 +08:00
parent d5092258bb
commit 188a70776c
2 changed files with 32 additions and 0 deletions

View File

@ -15,6 +15,24 @@ public final class SymbolTable {
private final long[] hashCodes; private final long[] hashCodes;
private final long[] hashCodesOrigin; private final long[] hashCodesOrigin;
/**
* Create a symbol table
*
* @param input input
* @since 2.0.58
*/
public SymbolTable(Class<?>... input) {
this(classNames(input));
}
private static String[] classNames(Class... input) {
String[] names = new String[input.length];
for (int i = 0; i < input.length; i++) {
names[i] = input[i].getName();
}
return names;
}
public SymbolTable(String... input) { public SymbolTable(String... input) {
Set<String> set = new TreeSet<>(Arrays.asList(input)); Set<String> set = new TreeSet<>(Arrays.asList(input));
names = new String[set.size()]; names = new String[set.size()];

View File

@ -0,0 +1,14 @@
package com.alibaba.fastjson2;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class SymbolTableTest {
@Test
public void test() {
SymbolTable symbolTable = new SymbolTable(Integer.class, Long.class);
assertEquals(Integer.class.getName(), symbolTable.getName(1));
assertEquals(Long.class.getName(), symbolTable.getName(2));
}
}