Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEATURE] Truncate the large String variable in toString() #3762

Open
arjundt opened this issue Oct 15, 2024 · 2 comments
Open

[FEATURE] Truncate the large String variable in toString() #3762

arjundt opened this issue Oct 15, 2024 · 2 comments

Comments

@arjundt
Copy link

arjundt commented Oct 15, 2024

This feature will help to truncate the long string variables(eg, photos, private/public keys, json strings etc) in toString() method. Although there is is an annotation to exclude a variable in toString() but incase someone wanted that variable in truncated format then this feature will be very helpful. Please find the example of truncated and non-truncated toString() method below.

Non-truncated toString: Response(txnNo=1, photo=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)

Truncated toString: Response(txnNo=1, photo=iVBORw0KGgoAAAAN...)
@victorwss
Copy link
Contributor

I think that this is a very special corner case, exactly where you should write a custom old-fashioned toString() instead of having it being generated by Lombok.

Of course, I might be wrong, but I don't think that this is common enough to be worth implementing.

Anyway, if this would be implemented, I think that this would be relatively easy to add something like @Truncate(maxLength = 16).

@bmrammel
Copy link

bmrammel commented Nov 5, 2024

There was another issue made about modifying the output of specific fields in a toString method and the solution was to do something like this

@Data
public class Picture {
    
    @ToString.Exclude
    private String photo;
    
    @ToString.Include(name = "photo")
    public String getTruncatedPhoto() {
        return truncate(photo);
    }
    
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants