Même en Java, je veux afficher true avec un == 1 && a == 2 && a == 3 (Black Magic)

Préface

Je veux afficher vrai même en Java avec un == 1 && a == 2 && a == 3.

Environnement d'exploitation

Logique etc.

Puisqu'il s'agit de Java (?), La partie de jugement if est extraite dans une autre classe. Puisqu'il ne réécrit pas la valeur de l'argument, faites-en une méthode statique.

package study.javassist;

public class Judge {

	public static boolean judge(int a) {

		if (a == 1 && a == 2 && a == 3) {
			return true;
		} else {
			return false;
		}

	}

}

La classe principale qui appelle la classe ci-dessus est la suivante.

package study.javassist;

import javassist.CannotCompileException;
import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtMethod;
import javassist.NotFoundException;

public class JudgeCall {

	public static void main(String[] args) {
		try {
			new JudgeCall().execute();
		} catch (NotFoundException | CannotCompileException e) {
			e.printStackTrace();
		}
	}

	private void execute() throws NotFoundException, CannotCompileException {
		ClassPool cp = ClassPool.getDefault();
		CtClass cc = cp.get("study.javassist.Judge");
		CtMethod method = cc.getDeclaredMethod("judge");
		
		String newJudgeMethod = "{return true;}";
		method.setBody(newJudgeMethod);
		
		cc.toClass();

		System.out.println(Judge.judge(1));
		System.out.println(Judge.judge(2));
		System.out.println(Judge.judge(3));
		System.out.println(Judge.judge(4));
	
	}
}

résultat

true
true
true
true

Commentaire

Dans la méthode execute (), le contenu de traitement de la méthode juge de la classe study.javassist.Judge est réécrit pour qu'il soit toujours vrai.

Impressions que j'ai essayées

javassist, je l'ai évité d'une manière ou d'une autre, mais peut-il être utilisé pour traiter la partie de base du système? La prochaine fois que j'aurai une chance, je l'examinerai.

Recommended Posts

Même en Java, je veux afficher true avec un == 1 && a == 2 && a == 3 (Black Magic)
Même en Java, je veux afficher true avec un == 1 && a == 2 && a == 3 (édition PowerMockito)
Même en Java, je veux afficher true avec un == 1 && a == 2 && a == 3
Même en Java, je veux sortir true avec un == 1 && a == 2 && a == 3 (deuxième décoction Javassist)
Même en Java, je veux sortir vrai avec un == 1 && a == 2 && a == 3 (magie grise qui n'est pas tant que magie noire)
Même en Java, je veux sortir true avec un == 1 && a == 2 && a == 3 (Royal road edition qui n'est ni magique ni rien)
Je voulais que (a == 1 && a == 2 && a == 3) vrai en Java
Je veux ForEach un tableau avec une expression Lambda en Java
Je veux faire une liste avec kotlin et java!
Je veux créer une fonction avec kotlin et java!
Je veux créer un fichier Parquet même en Ruby
[Java] Je souhaite tester l'entrée standard et la sortie standard avec JUnit
[Java] Je veux effectuer distinctement avec la clé dans l'objet
Je souhaite sélectionner plusieurs éléments avec une disposition personnalisée dans la boîte de dialogue
Je souhaite créer un SNS Web sombre avec Jakarta EE 8 avec Java 11
Je souhaite envoyer un e-mail en Java.
Je veux utiliser java8 forEach avec index
rsync4j --Je veux toucher rsync en Java.
J'ai essayé de sortir quatre-vingt-dix-neuf en Java
Je veux être finalement même à kotlin
J'ai essayé de casser le bloc avec java (1)
Je veux faire quelque chose comme "cls" en Java
Je veux aussi utiliser ES2015 avec Java! → (´ ・ ω ・ `)
Je veux utiliser une petite icône dans Rails
Je souhaite surveiller un fichier spécifique avec WatchService
J'ai essayé de créer une fonction de connexion avec Java
Je souhaite définir une fonction dans la console Rails
Je veux faire des transitions d'écran avec kotlin et java!
Je veux cliquer sur une broche GoogleMap dans RSpec
Faisons une application TODO avec Java 2 Je veux créer un modèle avec Spring Initializr et créer Hello world
Je souhaite renvoyer un objet au format CSV avec en-tête et filtre multilignes en Java
J'ai créé une fonction pour enregistrer des images avec l'API dans Spring Framework. Partie 1 (édition API)
Même si je souhaite convertir le contenu d'un objet de données en JSON en Java, il existe une référence circulaire ...
J'ai essayé de créer un environnement de développement java8 avec Chocolatey
J'ai essayé de moderniser une application Java EE avec OpenShift.
[Java] Je souhaite convertir un tableau d'octets en un nombre hexadécimal
Je veux trouver un chemin relatif dans une situation où Path est utilisé
[Débutant] J'ai créé un programme pour vendre des gâteaux en Java
Je voulais juste créer une propriété réactive en Java
J'ai essayé de convertir une chaîne de caractères en un type LocalDate en Java
J'ai créé un client RESAS-API en Java
Je veux implémenter diverses fonctions avec kotlin et java!
Je souhaite simplifier l'instruction if-else de la branche conditionnelle en Java
Je veux écrire une boucle qui fait référence à un index avec l'API Stream de Java 8
Je veux FlashAttribute au printemps même si j'ai défini un proxy inverse! (ne pas faire)
Je veux renvoyer un type différent de l'élément d'entrée avec Java8 StreamAPI Reduce ()
J'ai créé une fonction pour enregistrer des images avec l'API dans Spring Framework. Partie 2 (édition client)
J'ai créé un PDF avec Java.
J'ai essayé d'interagir avec Java
Enregistrer la sortie dans un fichier en Java
Je souhaite ajouter une fonction de navigation avec ruby on rails
Je ne peux pas créer une classe Java avec un nom spécifique dans IntelliJ
Je veux extraire entre des chaînes de caractères avec une expression régulière
[Wire Mock] Je souhaite configurer un serveur stub / simulé en Java et effectuer des tests E2E.
[Ruby] Je souhaite afficher uniquement le caractère impair dans la chaîne de caractères
[Rails] Je souhaite envoyer des données de différents modèles dans un formulaire
Je veux écrire un joli build.gradle
[Mémo personnel] Comment interagir avec le générateur de nombres aléatoires en Java
Je veux afficher des images avec REST Controller de Java et Spring!
Je souhaite utiliser DBViewer avec Eclipse 2018-12! !!